gpt4 book ai didi

csv - 文件使用多重编码

转载 作者:行者123 更新时间:2023-12-04 12:52:33 25 4
gpt4 key购买 nike

我正在阅读一个文本文件,我猜它是用 utf-8 编码的。不过,有些行只能解码为 latin-1。我会说这是非常糟糕的做法,但无论如何我必须应对它。

我有以下问题:

第一:如何“猜测”文件的编码?我试过 enca ,但在我的机器上:

enca --list languages
belarussian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855 KOI8-U
bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113
czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic
croatian: CP1250 ISO-8859-2 IBM852 macce CORK
hungarian: ISO-8859-2 CP1250 IBM852 macce CORK
lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK
russian: KOI8-R CP1251 ISO-8859-5 IBM866 maccyr
slovak: CP1250 ISO-8859-2 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
slovene: ISO-8859-2 CP1250 IBM852 macce CORK
ukrainian: CP1251 IBM855 ISO-8859-5 CP1125 KOI8-U maccyr
chinese: GBK BIG5 HZ
none:

这不足以检测 latin-1。顺便说一句:如何增加 enca 的可用语言列表?

第二:是否可以将文件部分编码为不同的编码?我认为,从技术角度来看,这很有可能:只需对文件的不同部分使用不同的编解码器。你见过这个吗?你会如何处理读取这样的文件?你会尝试用不同的编码解码每一行吗?你会怎么做?我实际上正在使用 python,并且将不胜感激处理多重编码的示例。

第三:您通常如何处理您不知道他们使用的编码的文件?从不同来源下载文本文件时,我经常遇到这个问题。它们通常是从电子表格导出的 CSV 文件(我猜是 excel),但是根据导出参数,它们使用一种或另一种编码,没有提示选择了哪种编码,所以我不得不猜测。

最佳答案

  • 猜猜编码文件的文本 - 在什么中? Python、Perl、Java、C?请注意,这有时会产生意想不到的结果(例如 the "bush hid the facts" bug )
  • 有时一个文件会有不同编码的文本。文件格式为文件中的不同部分指定不同的编码,或者格式允许指定编码开关。例如,在 MIME 中, header 键是 ascii, header 值可以嵌入以其他编码编码的部分,并且内容的编码在 Content-Type header 中声明。
  • 如果您不知道编码,您只需要从文件(以二进制安全的方式)读取字节到缓冲区,直到您可以确定编码。
  • 关于csv - 文件使用多重编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885071/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com