我正在尝试读取文件并比较字符。但是,当我在阅读每一行后打印出来时:
with open('Q1.txt') as f:
content = f.read().splitlines()
我得到“\x80”、“\xe2”、“\x9d”等。
这些是什么意思以及如何摆脱它们?
谢谢。
最佳答案
open()
builtin 不处理 Python 2.x 中的任何文本编码。多字节字符以原始十六进制形式显示。您可以使用 io
模块以获得更强大的能力open
提供参数来定义编码的函数:
import io
with io.open(fname, 'r', encoding='utf-8') as f:
...
方便的是,这适用于 python 2.6+ 和 3.x,因此如果稍后将代码移植到 py3k,您将不会遇到神秘的编码问题。顺便说一句,open
3.x 中的builtin 实际上是io.open
的别名。 。 2.6+ 中的向后移植版本具有完全相同的功能。 io
模块旨在取代 codecs
模块并有一些内部改进,因此最好使用其 open
在新代码中。
关于python - 读取文件,输出UTF-8/Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709427/