Python中输入的Unicode转义字符无法解码问题求助
解决Python中输入字符串的Unicode转义解析问题
问题重现
当通过input()获取包含Unicode转义的字符串时,转义序列不会被自动解析:
input_0 = input() # 输入内容:f\u00eate print(input_0) # 输出:f\u00eate word = "f\u00eate" print(word) # 输出:fête
解决方案
方法1:使用codecs.decode()
利用unicode_escape编码格式解码输入字符串:
import codecs input_0 = input() decoded_str = codecs.decode(input_0, 'unicode_escape') print(decoded_str) # 输入f\u00eate时,输出fête
方法2:使用ast.literal_eval()
将输入字符串当作Python字面量解析,适合复杂转义场景:
import ast input_0 = input() decoded_str = ast.literal_eval(f'"{input_0}"') print(decoded_str) # 输入f\u00eate时,输出fête
注意:如果输入字符串本身包含双引号,需先对双引号做转义处理,避免解析出错。
为什么str()方法无效?
str()仅负责将对象转换为字符串类型,不会解析其中的转义序列,因此无法解决该问题。
内容的提问来源于stack exchange,提问作者Cobalt-monster
相关产品推荐
相关产品推荐

