读取 JSON:“\u00c5\u0082”是什么编码?如何将其获取到 unicode 对象?

ntl*_*0ve 3 python unicode json

我正在解析的 JSON 文件中的值之一是Wroc\u00c5\u0082aw. 我怎样才能把这个字符串变成一个 unicode 对象,产生“Wroc?aw”(在这种情况下是正确的解码)?

小智 6

看起来 JSON 生成的任何过程都采用 UTF-8 编码的文本,并将其误认为是 Latin-1 编码的文本。要修复错误,请反向运行相同的过程:

>>> u'Wroc\u00c5\u0082aw'.encode('iso-8859-1').decode('utf-8')
u'Wroc\u0142aw'
>>> import unicodedata
>>> unicodedata.name(u'\u0142')
'LATIN SMALL LETTER L WITH STROKE'
Run Code Online (Sandbox Code Playgroud)


小智 1

看来您的 JSON 没有正确的编码,因为 \u00c5 和 \u0082aw 都不会产生您在任何编码中期望的字符。

但您可能会尝试用 UTF8 或 UTF16 编码该值

  • \uc582 会产生那个棘手的 ł,我不知道为什么它被分成两部分。 (2认同)