You need to enable JavaScript to run this app. Python3中如何将Unicode字符串打印为真实中文字符而非转义形式
优惠活动
大模型
产品
解决方案
定价
更多

Python3中如何将Unicode字符串打印为真实中文字符而非转义形式

问题处理方案

场景1:代码中直接编写的字符串

如果你是在代码中直接编写如下内容:

a = '\u534e\u590f\u6210\u957f\u6df7\u5408'
print(a)

Python3 本身会自动解析字符串字面量中的\uXXXXUnicode转义序列,直接就能输出华夏成长混合,无需额外处理。

如果这种写法下你仍然输出了带\u的转义串,大概率是两种原因:

  • 给字符串加了raw字符串前缀r,也就是写成了a = r'\u534e\u590f...',此时Python不会解析转义,字符串内容就是字面的\u开头的字符。解决方法就是去掉r前缀即可。
  • 转义符写成了双反斜杠,也就是a = '\\u534e\\u590f...',此时Python会把第一个反斜杠解析为转义符,输出的就是字面的\u开头内容。解决方法是把双反斜杠改成单个反斜杠即可。

场景2:从外部读取的字符串本身包含字面转义序列

如果你的字符串是从文件、接口、异常解析的JSON等外部数据源获取的,字符串内容本身就是由反斜杠+u+四位十六进制字符组成的字面内容(可以用repr(a)验证,如果输出为'\\u534e\\u590f...'就是这种情况),可以用以下两种方法处理:

方法1:使用unicode_escape解码

# 假设a是已经拿到的字面转义字符串
a = '\\u534e\\u590f\\u6210\\u957f\\u6df7\\u5408'
# 先按utf-8编码为字节,再用unicode_escape规则解码
real_str = a.encode('utf-8').decode('unicode_escape')
print(real_str) # 输出:华夏成长混合

注意:该方法会同时解析字符串中所有其他转义序列(如\n、\t),如果字符串中存在真实的反斜杠字符,可能会出现解析错误。

方法2:使用ast.literal_eval安全解析(推荐)

该方法只会解析Python字面量,不会执行任意代码,比直接使用eval安全得多:

import ast

# 假设a是已经拿到的字面转义字符串
a = '\\u534e\\u590f\\u6210\\u957f\\u6df7\\u5408'
# 先给字符串外层包上双引号,模拟Python字符串字面量后解析
real_str = ast.literal_eval(f'"{a}"')
print(real_str) # 输出:华夏成长混合

注意:如果字符串本身包含双引号,需要先做转义处理,避免解析报错。


内容的提问来源于stack exchange,提问作者linrongbin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 22:36:04