對於Unicode字符,須要print出來的話,因爲本地系統是Windows中的cmd,默認codepage是CP936,即GBK的編碼,因此python解釋器須要先將上述的Unicode字符編碼爲GBK,而後再在cmd中顯示出來。可是因爲該Unicode字符串中包含一些GBK中沒法顯示的字符,致使此時提示「’gbk’ codec can’t encode」的錯誤的。html
解決方法 在轉換的時候必需進行一些前置動做 string.replace(u’\xa0’, u’ ‘) 將’\xa0‘替換成u’ ‘空格,這個\xa0就是那個html中的&nbps空格
demo :將讀取的每個字符 進行對應的替換便可python
for x in xrange(0,len(line)):
if not line[x] in characters:
characters.append(line[x].replace(u'\xa0',u' '))
複製代碼
解決方案:在對unicode字符編碼時,添加ignore參數,忽略沒法沒法編碼的字符,這樣就能夠正常編碼爲GBK了 #你的字符串數據.encode('GBK','ignore')windows
request = urllib2.Request(url=url)
response = urllib2.urlopen(request,timeout=20)
result = unicode(response.read())
result = str(result)
print result.encode('GBK','ignore')
複製代碼