在处理包含解析一些 JSON 的项目时,我遇到了类似的问题。我有很多字符串,所有非 ASCII 字符都像这样转义:
>>> print(content)
\u0412\u044B j\u0435\u0441\u0442\u0435 \u0438\u0437 \u0420\u043E\u0441\u0441\u0438\u0438?
...
>>> print(content)
\u010Cemu jesi na\u010Dinal izu\u010Dati med\u017Euslovjansky jezyk?
逐个符号地转换这种混合unichr()
将是乏味的。我最终决定的解决方案:
content.encode("utf8").decode("unicode-escape")
第一个操作(编码)产生如下字节串:
b'\\u0412\\u044B j\\u0435\\u0441\\u0442\\u0435 \\u0438\\u0437 \\u0420\\u043E\\u0441\\u0441\\u0438\\u0438?'
b'\\u010Cemu jesi na\\u010Dinal izu\\u010Dati med\\u017Euslovjansky jezyk?'
第二个操作(解码)将字节字符串转换为 Unicode 字符串,但\\
替换为\
,它“解包”字符,结果如下:
Вы jесте из России?
Čemu jesi načinal izučati medžuslovjansky jezyk?