2011-02-15 21 views
1

這似乎是國際開發商之間的共同問題,但我還沒有找到一個明確的答案呢。 我從進料得到以下字符串: 「卡洛斯·ê·卡洛斯mostramØ闕廈德MELHOR吶互聯網」UTF-8在Python

以下錯誤返回到控制檯: 的UnicodeDecodeError:「UTF-8」編解碼器不能解碼字節31-33的位置是:無效數據

在此先感謝,

FBR

+6

我們無法看到您使用的代碼,因此很難給出「直接」答案。另外,很難知道你在哪裏找到這個「字符串」以及它在你找到它時使用什麼編碼。沒有任何代碼或任何數據,就不可能有直接的答案。 – 2011-02-15 20:12:58

回答

3

你不能只是使用解碼一些隨機編碼,即使是UTF-8;你必須使用或在HTTP頭中返回的編碼文檔中的等價物(如HTML的META元件內)解碼。

如果編碼爲不可用或不正確,那麼你應該在the decode operation指定將發生在一個無效的字節序列是什麼;通常'replace'就足夠了。

>>> print u'Carlos e Carlos mostram o que há de melhor na internet'.encode('latin1').decode('utf-8', 'replace') 
Carlos e Carlos mostram o que h�e melhor na internet