python中編碼總結

2021-06-28 20:55:15 字數 1459 閱讀 1604

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 ...