【问题标题】:Why is ISO 8859-1 embedded into unicode Python strings?为什么将 ISO 8859-1 嵌入到 unicode Python 字符串中?
【发布时间】:2020-05-10 13:44:56
【问题描述】:

所以我有一个 CSV 文件。

当我运行 file --mime-encoding file.csv 时,它说它使用 UTF-8。

但是,当我在 Python pandas DataFrame 中读取文件并开始查看字符串时,其中一些包含 \xa0(这是 Latin1 (ISO 8859-1) 中的不间断空格)。

此文件包含来自不同网站的信息。

这怎么可能?为什么它们不显示为不间断空格?为什么它们在写入看似 UTF-8 的文件之前没有正确编码?

【问题讨论】:

  • 该文件中的其他非 ASCII 字符是否正确编码为 UTF-8?

标签: python unicode utf iso-8859-1


【解决方案1】:

这怎么可能

文件只是一系列字节。文件完全有可能包含不同编码的字节字符串。

为什么它们不显示为不间断空格

显示在哪里?它们显示为\xa0

为什么它们在写入看似 UTF-8 的文件之前没有正确编码?

您没有提及 CSV 的来源,因此无法确定。

您的 CSV 很可能包含来自具有不同编码的来源的数据。您可能需要猜测文件中每一行而不是整个文件的编码。 chardet 包可以帮助您猜测正确的编码,但这只是猜测。

【讨论】:

    猜你喜欢
    • 2012-09-29
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2011-01-18
    • 2014-07-04
    相关资源
    最近更新 更多