Skip to main content
 首页 » 编程设计

python之如何将 "\u5c0f\u738b\u5b50\u003a\u6c49\u6cd5\u82f1\u5bf9\u7167"之类的字符串转换为汉字

2025年05月04日16findumars

我现在正在开发一个小工具来请求和解码一个网页,其中的中文字符存储为字符串

\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 位十六进制值。