为什么ISO 8859-1嵌入unicode Python字符串中



所以我有一个CSV文件。

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

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

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

这是怎么可能的,为什么它们没有显示为非中断空间,为什么它们在被写入一个看起来是UTF-8的文件之前没有正确编码?

这怎么可能是

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

为什么它们没有显示为非中断空间

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

为什么它们在被写入一个看起来是UTF-8的文件之前没有正确编码?

您没有提到CSV来自哪里,因此无法确定。

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

最新更新