Python读取文件按换行分割后出现字符编码异常问题求助
嗨,这个问题我太熟了!你看到的\xef\xac\x81其实是UTF-8编码下的“fi”(一个把f和i连在一起的特殊字符)被错误解码后蹦出来的乱码。
为啥会这样?
你的answer.txt文件是UTF-8编码的,但Python 2的open()函数默认会用系统的默认编码(一般不是UTF-8)去读文件,导致这个特殊的“fi”字符没被正确解码,打印时就直接输出了它的原始字节序列。
怎么解决?
你只需要在读取文件时明确指定用UTF-8编码就行:
如果你用的是Python 2,得借助codecs模块:
import codecs with codecs.open('/home/naveen/Desktop/answer.txt', 'r', 'utf-8') as ans: content = ans.read() content = content.split('\n') print(content)
要是用Python 3就更简单了,直接给open()加个encoding参数:
with open('/home/naveen/Desktop/answer.txt', 'r', encoding='utf-8') as ans: content = ans.read() content = content.split('\n') print(content)
这样处理后,就能正确显示文件里的Magnificent Mary啦~
内容的提问来源于stack exchange,提问作者Naveen Tummidi
相关产品推荐
相关产品推荐

