python中編碼總結:
1 python預設使用程式檔案的編碼對中文字串進行編碼,所以utf-8 、gbk程式的記錄的中文是不同的編碼
2 可以強制使用unicode編碼進行編碼,使用u字元 str = u'中文字元'
3. utf-8 每個中文占用3個位元組 \xe8\x80\x83
4 gbk 每個中文占用2個位元組 \xbf\xbc
5 編碼介紹
編碼規則
utf-8編碼:乙個英文本元等於乙個位元組,乙個中文(含繁體)等於三個位元組unicode編碼:乙個英文等於兩個位元組,乙個中文(含繁體)等於兩個位元組。
驗證:
記事本中寫1個漢字,檢視檔案的大小
gbk:2位元組 | unicode:4位元組| utf-8: 6位元組
記事本中寫2個漢字,檢視檔案的大小
gbk:4位元組
| unicode:6位元組
| utf-8: 9位元組
好像有問題,除了gbk之外,另外兩種編碼完全不符合編碼規則。。。,最後通過可檢視16進製制編輯器(ultraedit
)檢視檔案的內容發現
記事本 對於 unicode、
utf-8編碼開頭會加乙個字元,分別占用乙個漢字的空間(2位元組、3位元組
),所以去除這個字元占用字元應該是這樣的。
記事本中寫1個漢字,檢視檔案的大小
gbk:2位元組 | unicode:2位元組
| utf-8:
3 位元組
記事本中寫2個漢字,檢視檔案的大小
gbk:4位元組
| unicode:4位元組
| utf-8:6位元組
備註:1 如果想獲取中文的編碼 可使用 str.encode('hex')
str = "考"
for item in str:
print item.encode("hex") #每個漢字 使用3個位元組
2 位元組(
byte
): 8位(bit)
python 中的編碼問題總結
一 首先,請選擇python3.x最新版本。因為最新版本的編碼問題相對於之前的2.0版本要好不少。二 在編寫程式 時,習慣性地在 開始處加上下面的語句。預設地,python的.py檔案以標準的7位ascii碼儲存,而不是unicode格式的,然而如果有的時候使用者需要在.py檔案中包含很多的unic...
Python 編碼總結
python裡面中文亂碼問題乙個讓初學者很頭痛的問題,自己在做專案的時候也遇到不少的編碼問題,在這裡做乙個小小的總結。1.編碼轉換 python內部使用unicode作為預設編碼來表示字串 string 在編碼轉換的過程中,將unicode作為中間編碼進行過度是乙個本質的思想。fromcode un...
python 編碼總結
1.如果py檔案裡面不指定原始檔需要用到的編碼格式的話,python解析器就會用預設的編碼去解析,一般是ascii,所以如果此時原始檔有中文的話就會報錯,syntaxerror non ascii character.因此一定要顯示指定編碼格式,方法是在py檔案第二行加入此句 coding gbk ...