python中的字元編碼問題

2021-04-28 01:59:43 字數 1306 閱讀 2939

總結python的字元編碼

應該在**最初兩行內包含:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

獲得/設定系統的預設編碼

sys.getdefaultencoding()

sys.setdefaultencoding

('utf-8'

)獲得檔案系統的檔名的編碼

sys.getfilesystemencoding()

獲得當前終端的輸入、輸出編碼

sys.stdout.encoding

sys.stdin.encoding

編碼轉換(先轉換為unicode,再轉換為具體的編碼),有兩種方法:

unicode

('abc', 'mbcs'

).encode

('utf-8'

)'abc'.decode

('mbcs'

).encode

('utf-8'

)常見的編碼轉換分為以下幾種情況:

* unicode->其它編碼

例如:a為unicode編碼 要轉為gb2312。a.encode

('gb2312'

)* 其它編碼->unicode

例如:a為gb2312編碼,要轉為unicode. unicode

(a, 'gb2312'

)或a.decode

('gb2312'

)* 編碼1 -> 編碼2

可以先轉為unicode再轉為編碼2

如gb2312轉big5

unicode

(a, 'gb2312'

).encode

('big5'

)* 判斷字串的編碼

isinstance

(s, str

) 用來判斷是否為一般字串

isinstance

(s, unicode

) 用來判斷是否為unicode

* 如果乙個字串已經是unicode了,再執行unicode轉換有時會出錯(並不都出錯)

可以寫乙個通用的轉成unicode函式:

def u(s, encoding):

ifisinstance

(s, unicode

):return s

else:

return

unicode

(s, encoding)

Python中的字元編碼問題

寫之前必須先吐槽一句,字元編碼問題真是讓人頭疼啊啊啊啊!這是美國標準資訊交換碼,用8位表示乙個字元,當然用這種方式表示所有的英文本母是完全夠用了,多餘的還能用來表示控制字元,標點符號等這些特殊字元。但是,當其他民族的語言也想被儲存到計算機中時,這種表示方式就完全不夠用了。非英語民族為了滿足自己的語言...

python中的字元編碼問題

ascii碼和字元之間的轉換 gbk2312 6700多漢字 gbk1.0 1995年推出,20000餘漢字 gbk18030 2000年推出,27000餘漢字 unicode 統一碼 萬國碼 單一碼 是電腦科學領域裡的一項業界標準,包括字符集 編碼方案等。unicode 是為了解決傳統的字元編碼方...

python的字元編碼問題

最近因為專案需要用到python指令碼,趕緊學習了一下。今天碰到乙個問題,做下筆記。就是出現類似 non utf 8 code starting with xb6 in file xx.py 這樣的報錯,錯誤原因網上都有解釋 是python的檔案編碼問題,因此根據官方提示,需要加入 coding 你...