2017-09-13 74 views
4

我怎麼能解碼包含的東西像這樣的字符串:使用python蟒蛇3解碼串STA Ã ŸË

staße 

staße 

(編輯:解讀源作爲HTML實體不會導致預期的結果,但「staÃe」)

背景:我奮力使用與亞馬遜MWS響應串上班mws client你當做pip install mws。特別想知道,因爲sourcestring看起來像包含2個特殊字符,但目標只是'ß'。

In the docs他們在談論一個Unicode字符的限制我不明白

+0

試過[解碼HTML實體Python字符串?](https://stackoverflow.com/questions/2087370/decode-html-entities-in-python-string),但不做這項工作。 –

+0

也是我的第一個想法,但是將轉義字符解釋爲html實體(就像在鏈接的線程中)會導致「sta?」。我試過在http://www.convertstring.com/de/EncodeDecode/HtmlDecode – Telcrome

+0

是的,只是看到了。 –

回答

3

嗯,這裏的問題是,ß是UTF-8的兩個字節序列表示:C3 9F十六進制或195 159(十進制)。但是,當您將實體解碼爲HTML時,它們最終會以Unicode 代碼點 195和159,195作爲代碼點。你將不得不做一些巫術,比如將str改爲bytes,然後將bytes解碼爲(Unicode)str。比較的結果:

print('\xc3\x9f') 

print(bytes('\xc3\x9f', 'Latin-1').decode()) 
+0

謝謝,你的代碼片段結合utf-8作爲輸出xml文件的編碼解決了問題 – Telcrome