python unicode轉中文及轉換預設編碼

Pyerlife發表於2016-11-16

一、 

 在爬蟲抓取網頁資訊時常需要將類似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"轉換為中文,實際上這是unicode的中文編碼。可用以下方法轉換:

1、

1 >>> s = u'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8'
2 >>> print s
3 人生苦短,py是岸

2、

1 >>> s = r'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8'
2 >>> s = s.decode('unicode_escape')
3 >>> print s
4 人生苦短,py是岸

 

二、

  另外,在python2的字元編碼問題時常會遇到“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)”的編碼錯誤。

而用以下方法通常可以解決:

1 import sys
2 reload(sys)
3 sys.setdefaultencoding('utf-8')

  此方法是將Python2的預設編碼ASCII改為 utf-8。但此方法不是一勞永逸的,可能會使一些程式碼的行為變得怪異。

  可以參考該連線:http://blog.ernest.me/post/python-setdefaultencoding-unicode-bytes

相關文章