我现在正在开发一个小工具来请求和解码一个网页,其中的中文字符存储为字符串
\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 转义形式只是表达相同代码点的另一种方式。参见 String Literals :
\uxxxx
Character with 16-bit hex value xxxx (Unicode only)
\Uxxxxxxxx
Character with 32-bit hex value xxxxxxxx (Unicode only)
Python 在读取源代码以构造 unicode 值时解释这些转义码。
如果数据源不是来自 Python 源代码而是来自网络,则您使用的是 JSON 数据,它使用相同的转义格式:
>>> import json
>>> print json.loads('"\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167"')
小王子:汉法英对照
请注意,该值随后需要成为更大字符串的一部分,该字符串至少包含引号以将其标记为字符串。
另请注意,在涉及非 BMP(补充)代码点时,JSON 字符串转义格式与 Python 的转义格式不同; JSON 像 UTF-16 一样对待那些,by creating a surrogate pair并为这样的代码点使用两个 \uxxxx 序列。在 Python 中,您将使用 \Uhhhhhhhh 32 位十六进制值。
