繁体   English   中英

如何将“ \\ u5c0f \\ u738b \\ u5b50 \\ u003a \\ u6c49 \\ u6cd5 \\ u82f1 \\ u5bf9 \\ u7167”这样的字符串转换为汉字

[英]How can I convert strings like “\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167” to Chinese characters

我现在正在使用一个小的工具来请求和解码网页,在该网页上汉字存储为字符串,例如

\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167 

在源代码中,有些是unicode。 我想将其转换为汉字。

我可以通过此网站http://rishida.net/tools/conversion/进行操作 但是,如何使用python做到这一点?

这些已经是Unicode代码点 它们代表中文字符,但使用的转义码对开发人员更容易:

>>> print u'\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167'
小王子:汉法英对照

您无需做任何转换。 \\uxxxx转义形式只是表示相同代码点的另一种方式。 参见字符串文字

\\uxxxx
具有16位十六进制值xxxx的字符(仅Unicode)
\\Uxxxxxxxx
具有32位十六进制值xxxxxxxx的字符(仅Unicode)

当读取源代码以构造unicode值时,Python会解释这些转义代码。

如果数据源不是来自Python源代码,而是来自Web,则您将拥有JSON数据,该数据使用相同的转义格式:

>>> import json
>>> print json.loads('"\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167"')
小王子:汉法英对照

请注意,该值必须是较大字符串的一部分,该字符串至少应包含引号以将其标记为字符串。

还要注意,在涉及非BMP(补充)代码点时,JSON字符串转义格式与Python不同。 JSON通过创建一个代理对并为这样的代码点使用两个\\uxxxx序列,像对待UTF-16一样对待它们。 在Python中,您可以使用\\Uhhhhhhhh 32位十六进制值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM