我现在正在开发一个小工具来请求和解码一个网页,在该网页上,汉字被存储为字符串,如
\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167
在源代码中,一些 unicode。我想把它转换成汉字。
我可以通过这个网站http://rishida.net/tools/conversion/。但是我怎样才能使用 python 来实现呢?
我现在正在开发一个小工具来请求和解码一个网页,在该网页上,汉字被存储为字符串,如
\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)
Python 在读取源代码以构造 unicode 值时会解释这些转义码。
如果数据源不是来自 Python 源代码而是来自网络,那么您将使用 JSON 数据,它使用相同的转义格式:
>>> import json
>>> print json.loads('"\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167"')
小王子:汉法英对照
请注意,该值需要成为较大字符串的一部分,该字符串至少包含引号以将其标记为字符串。
另请注意,当涉及到非 BMP(补充)代码点时,JSON 字符串转义格式与 Python 的不同;JSON 像 UTF-16 一样对待那些,通过创建代理对并为这样的代码点使用两个\uxxxx
序列。在 Python 中,您将使用\Uhhhhhhhh
32 位十六进制值。