我正在从文本文件中读取一些字符串。 有些字符串有一些“奇怪”字符,例如“\xc3\xa9comiam”。 如果复制该字符串并将其粘贴到变量中,则可以将其转换为可读字符:
string = "\xc3\xa9comiam"
print(string.encode("raw_unicode_escape").decode('utf-8'))
écomiam
但如果我从文件里读到它,它就不起作用了:
with open(fn) as f:
for string in f.readlines():
print(string.encode("raw_unicode_escape").decode('utf-8'))
\xc3\xa9comiam
看来解决办法一定很简单,但我找不到。 我能做什么
谢谢
谢谢大家的帮助
我想,我已经找到了一个解决方案(不是很优雅,但它确实起到了作用)
谢谢
那些不是
unicode-escape
的-顾名思义,它处理像\u00e9
但不是\xe9
这样的Unicode序列你得到的是UTF-8编码序列。解码的方法是将其转换成
bytes
序列,然后将其解码为Unicode字符串'latin-1'
技巧是一个肮脏的秘密,它只是将每个字节转换为具有相同字符代码的字符对于您的文件,您可以以二进制模式打开它,这样您就不必显式地将它转换为
bytes
,或者您可以简单地对读取的字符串应用相同的转换相关问题 更多 >
编程相关推荐