python使用chardet判斷字串編碼的方法

2022-10-04 23:30:25 字數 1340 閱讀 6471

最近利用python抓取一些網上的資料,遇到了編碼的問題。非常頭痛,總結一下用到的解決方案。

linux中vim下檢視檔案編碼的命令 set fileencoding

py程式設計客棧thon中乙個強力的編碼檢測包 chardet ,使用方法非常簡單。linux下利用pip install chardet實現簡單安裝

import chardet

f = open('file','r')

fencoding=chardet.detect(f.read())

print fencoding

fencoding輸出格式 ,只能判斷是否為某種編碼的概率。比較準確的結果了。輸入引數為str型別。

了解python中str的編碼後可以利用decode和encode來實現編碼的轉換。

一般流程是str利用decode方法根據str的編碼將其解碼為unicode字串型別,然後利用encode根據特定的編碼將unicode字串型別轉換為特定的編碼。python中str和unicode屬於兩種不同的型別,如下。

一般情況下window預設編碼gbk,linux預設編碼utf8

python程式設計中 系統編碼,python編碼,檔案編碼 的概念。

系統編碼:預設寫原始碼的編輯器的編碼方式。它代表原始碼檔案內的所有內容都是根據詞方式編碼成二進位製碼流。存入到磁碟中的。linux下通過locale命令檢視。

python編碼:指python內設定的jmnaz解碼方式。如果不設定的話,python預設的是ascii解碼方式。如果python源**檔案中不出現中文的話,這個地方怎麼設定應該不會問題。

設定方法:在原始碼檔案開頭(一定是第一行):#-*-coding:utf-8jmnaz-*-,原始碼檔案的設定解碼方式是utf-8 或者 

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

檔案編碼:文字的編碼方式,linux下vim利用set fileencoding檢視。

一般情況下輸出亂碼的原因就是 沒有按照系統解碼的方式進行編碼。

比如print s, s型別為str,linux系統下系統預設編碼為utf8編碼,s在輸出前就應該編碼為utf8。如果s為gbk程式設計客棧編碼就應該這樣輸出。print s.decode('gbk').encode('utf8')才能輸出中文。

window下面情況相同,window預設編碼為gbk編碼,所以s輸出前必須編碼為gbk。

python處理中一般處理unicode型別。這樣輸出前直接編碼即可。

本文標題: python使用chardet判斷字串編碼的方法

本文位址: /jiaoben/python/120793.html

python 中 chardet 的使用

2.解壓檔案 將它解壓,得到其中的資料夾 chardet 並複製到 python安裝根目錄 lib site packages 下,確保這個位置可以被python引用到。pip install chardet安裝chardet模組 由於chardet是第三方的模組,所以我們需要先安裝chardet模...

python使用模組chardet判斷字元編碼

python中chardet 用來實現字串 檔案編碼檢測模板 2.chardet能夠檢測到的編碼方式 chardet 模組可以檢測以下編碼 3.chardet模組使用 使用chardet模組判斷字元編碼使用detect 函式即可 import chardet import urllib.reques...

chardet模組的使用

在處理字串時,常常會遇到不知道字串是何種編碼,如果不知道字串的編碼就不能將字串轉換成需要的編碼。面對多種不同編碼的輸入方式,是否會有一種有效的編碼方式?chardet是乙個非常優秀的編碼識別模組。pip install chardet 2.簡單使用 當我們拿到乙個bytes時,就可以對其檢測編碼。用...