總結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 你...