1. 程式人生 > >python之分析decode、encode、unicode編碼轉換為漢字

python之分析decode、encode、unicode編碼轉換為漢字

decode()方法使用註冊編碼的編解碼器的字串進行解碼。它預設為預設的字串編碼。decode函式可以將一個普通字串轉換為unicode物件。decode是將普通字串按照引數中的編碼格式進行解析,然後生成對應的unicode物件,比如在這裡我們程式碼用的是utf-8,那麼把一個字串轉換為unicode就是如下形式:s2=’哈’.decode(‘utf-8′),s2就是一個儲存了’哈’字的unicode物件,其實就和unicode(‘哈’, ‘utf-8′)以及u’哈’是相同的。

例: str.decode(encoding='UTF-8',errors='strict')


引數

encoding -- 這是所使用的編碼。

errors -- 這可能是給定一個不同的錯誤處理機制。預設的錯誤是“嚴格”,即編碼錯誤提出UnicodeError。其他可能的值是ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 並通過codecs.register_error().註冊的任何其他名稱。


encode()方法正好就是相反的功能,是將一個unicode物件轉換為引數中編碼格式的普通字元,encode正好就是相反的功能,是將一個unicode物件轉換為引數中編碼格式的普通字元。

例: str.encode(encoding='UTF-8',errors='strict')


引數

encoding -- 這是所使用的編碼。對於所有的編碼方案的列表,請訪問:標準編碼庫。

errors -- 這可能是給定一個不同的錯誤處理機制。預設的錯誤是“嚴格”,即編碼錯誤提出UnicodeError。其他可能的值是ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 並通過codecs.register_error().註冊的任何其他名稱。

<pre name="code" class="python">'京東放養的爬蟲'.decode('gbk')

#輸出u'\u4eac\u4e1c\u653e\u517b\u7684\u722c\u866b' --unicode編碼
<pre name="code" class="python">
'京東放養的爬蟲'
#輸出'\xbe\xa9\xb6\xab\xb7\xc5\xd1\xf8\xb5\xc4\xc5\xc0\xb3\xe6' --gbk編碼
</pre></p><p></p>如何將unicode編碼轉換為漢字,方法有幾種,如下程式碼。<p><pre name="code" class="python"># coding:utf8
#python 將unicode編碼轉化為漢字

import json

str = '\u4eac\u4e1c\u653e\u517b\u7684\u722c\u866b'

#方法1 使用unicode_escape 解碼
print str.decode('unicode_escape')
print unicode(str, 'unicode_escape')

#方法2:若為json 格式,使用json.loads 解碼
print json.loads('"%s"' %str)

#方法3:使用eval
print eval('u"%s"' % str)

#repr(...)在字串外增加一對 'deng' ->  "'deng'"
#    repr(object) -> string

#eval(repr(object)) == object

#方法4:使用python3