如何解码包含如下内容的字符串:
staße
到
staße
使用 python。
(编辑:将源解释为 html 实体不会导致预期的结果,而是“staé”)
背景:我正在努力使用 mws client 来处理亚马逊 mws 响应字符串你在执行 pip install mws
时得到。特别想知道,因为源字符串看起来包含 2 个特殊字符,但目标只是“ß”。
In the docs他们在谈论我不明白的 Unicode 字符限制
最佳答案
嗯,这里的问题是 ß
在 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())
关于python 3 解码字符串状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46196812/