2017-09-13 77 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