我该如何在Python中解码转义的Unicode JavaScript代码?

5

我有一个字符串:

V posledn\u00edch m\u011bs\u00edc\u00edch se bezpe\u010dnostn\u00ed situace v Libyi zna\u010dn\u011b zhor\u0161ila, o \u010dem\u017e sv\u011bd\u010d\u00ed i ned\u00e1vn\u00e9 n\u00e1hl\u00e9 opu\u0161t\u011bn\u00ed zem\u011b nejen \u010desk\u00fdmi diplomaty. Libyi hroz\u00ed nekontrolovan\u00fd rozpad a nekone\u010d

最近几个月,应该是“V posledních měsících se ...”,所以\u00ed代表的是í,\u011b代表的是ě。

你知道如何在Python中解码它吗?这是我在Python中解析的javascript代码。我可以编写自己的临时解决方案,因为捷克语中只有十二个左右的重音字符需要转义,但那看起来很丑陋。

3个回答

11

使用'unicode-escape'编解码,如果x是您的字符串,则使用x.decode('unicode-escape')进行解码。


'\u2019'.decode('unicode-escape') 给我返回了 u'\u2019' (Python 2.7.17) - Gallaecio
我的错,r'\u2019'.decode('unicode-escape') 返回 u'\u2019',打印出来的结果是 ,与预期一致。 - Gallaecio
如果你在Python中处理一个已经被编码为.encode().decode('unicode-escape')的字符串,那么可以使用这个方法。 - Jossef Harush Kadouri

1
如果是 JavaScript 代码,那么可能实际上是 JSON,您可以使用 json.loads 解码。

似乎不能直接工作(它说它不是JSON),而BrenBarn的答案确实非常好,谢谢! - sup

0

我曾经遇到过类似的问题,解决方法如下:

unicodedata.normalize('NFD', my_string.decode('unicode-escape')).encode('ascii','ignore')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接