如何将'\u5de5'转换为'工'?编写Python转换函数的方法
问题解析与解决方案
差异原因
你看到的两个len('\u5de5')结果不同,本质是字符串的实际内容不一样:
- 第一个
'\u5de5'是6个普通ASCII字符:\、u、5、d、e、5,所以长度为6; - 第二个
'\u5de5'是Python解析后的单个Unicode字符“工”,所以长度为1。
转换函数实现
要把字符串形式的\u5de5转换成实际的Unicode字符,有两种简洁的实现方式:
方法1:使用codecs.decode
import codecs def con_str(arg): return codecs.decode(arg, 'unicode_escape') # 测试 print(con_str('\\u5de5')) # 输出:工
方法2:使用ast.literal_eval
import ast def con_str(arg): return ast.literal_eval(f'"{arg}"') # 测试 print(con_str('\\u5de5')) # 输出:工
注意:如果输入是代码里直接写的'\u5de5'字面量,它本身已经是6个字符,需确保传入的是原始转义字符串(比如用双反斜杠\\u5de5或原始字符串r'\u5de5')。
内容的提问来源于stack exchange,提问作者showkey
相关产品推荐
相关产品推荐

