做者:shede333
主頁:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847
版權聲明:原創文章,版權聲明:自由轉載-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][]html
#Python 字符串與unicode對象 關於與區別 encode、decodepython
做者:shede333
主頁:http://my.oschina.net/shede333
版權聲明:原創文章,版權聲明:自由轉載-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0][]數組
結合下面的文章的一點理解:
python 中文亂碼問題深刻分析_python_腳本之家
python的str,unicode對象的encode和decode方法(轉) - 不得閒 - 博客園
python編碼問題_百度文庫ide
##字符串str:
是一個字節數組, 是對unicode對象,編碼encode(utf-8,gbk,GB2312 等等)後的存儲格式,測試
##unicode對象 u’****’: 是一個unicode對象, 經過encode()接口轉換爲str編碼
注:在pycharm等ide 更改文件頭編碼聲明,會影響文件真正的編碼存儲,可能會影響測試結果
url
##開始測試驗證.net
測試環境 Mac OS 10.9 , Pycharm 3.0.2
code
###測試1.htm
#_*_ coding:GBK _*_ print '哈哈'.decode('gbk') print repr('哈哈’)
輸出:
哈哈
'\xb9\xfe\xb9\xfe’
###測試2.
#_*_ coding:UTF-8 _*_ print '哈哈'.decode('utf-8') print repr('哈哈’)
輸出:
哈哈
'\xe5\x93\x88\xe5\x93\x88'
###測試3.
文件頭 #_*_ coding:GBK _*_ print repr('哈哈’) print '哈哈'.decode(‘utf-8')
輸出:
'\xb9\xfe\xb9\xfe’
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb9 in position 0: invalid start byte
###測試4.
#_*_ coding:UTF-8 _*_ print repr('哈哈’) print '哈哈'.decode('gbk')
輸出:
'\xe5\x93\x88\xe5\x93\x88'
鍝堝搱
注:上面輸出了亂碼