Python中的編碼問題

python文件的編碼 v2.7

首先,
encode('codec') => 把unicode轉(zhuǎn)化成其他codec的str;
decode('codec') => 把其他codec的str轉(zhuǎn)換成unicode

python默認(rèn)charset:'ascii'.

import sys
print sys.getdefaultencoding() 

如果字符集是'ascii'碼,那文件中不能處理中文。在開頭引入# coding=utf-8 或者 # - coding:utf-8 -,表明支持utf-8字符集。

打印unicode報錯 --> 檢查是否當(dāng)前編碼是utf-8,然后encode('utf-8')。比如從網(wǎng)上爬下來的中文數(shù)據(jù),首先要decode('GBK')。為了顯示出來還要encode('utf-8')

utf-8和utf-16
utf-8是變長編碼,0000-007F一個字節(jié),0080-07FF->兩個字節(jié),其他->三個字節(jié)
utf-16是固定兩個字節(jié)編碼方式

python中str.encode("targetcodec")其實做了隱式的str.decode("defaultcodec").encode("targetcodec"),而在print一個unicode的時候則會隱式做encode('defaultcodec)操作,這也是經(jīng)常會出錯的一個原因。解決辦法是修改defaultcodec:

  s=u'中文'
  reload(sys)
  sys.setdefaultencoding('utf-8')
  print s
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 字符集和編碼簡介 在編程中常??梢砸姷礁鞣N字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,080評論 0 13
  • 幾個基本概念 bit二進制位, 是計算機內(nèi)部數(shù)據(jù)儲存的最小單位,11010100是一個8位二進制數(shù)。一個二進制位只...
    西電大俠閱讀 3,707評論 1 8
  • decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼,如str1.decode('gb2312'),表示...
    心_的方向閱讀 187評論 0 0
  • 可以看我的博客 lmwen.top 或者訂閱我的公眾號 簡介有稍微接觸python的人就會知道,python中...
    ayuLiao閱讀 3,395評論 1 5
  • decode的作用是將其他編碼的字符串轉(zhuǎn)換成unicode編碼,如str1.decode('gb2312'),表示...
    Andone1cc閱讀 140評論 0 0

友情鏈接更多精彩內(nèi)容