python - 读取文件,输出UTF-8/Unicode

标签 python python-2.7 unicode utf-8

我正在尝试读取文件并比较字符。但是,当我在阅读每一行后打印出来时:

    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/

相关文章:

python - 如何在特定字符之前拆分字符串?

python - 如何从python中的txt文件中逐行提取文本

当父对象不从对象继承时,Python 2.x super __init__ 继承不起作用

c++ - 从 ASCII 到 Unicode 字符代码的转换 (FreeType2)

python - 将 os.system 的输出保存到文本文件

python - Django 序列化器 : validate function not called

python - 使用 SchemDraw 库自动保存图像

python - 添加到 Python 2.7 中的列表

java - 创建一个示例,如果 UNICODE_CASE 关闭则失败,但打开时匹配

string - 如何在 Go 中获取 rune 的十进制值?