【问题标题】:I exported via mysqldump to a file. How do I find out the file encoding of the file?我通过 mysqldump 导出到一个文件。如何找出文件的文件编码?
【发布时间】:2009-12-12 04:00:33
【问题描述】:

给定 ubuntu(或一般的 debian unix)中的文本文件,我如何找出文件的文件编码?我可以在其上运行 odhexdump 来识别其编码吗?我应该注意什么?

【问题讨论】:

    标签: mysql linux unicode ubuntu mysqldump


    【解决方案1】:

    有很多工具可以做到这一点。尝试在网络上搜索“检测编码”。以下是我找到的一些工具:

    • Unicode 国际化类 (ICU) 是一个很好的起点。请特别查看他们在Character Set Detection 上的页面。

    • Chardet 是一个 Python 模块,用于猜测编码 的一个文件。请参阅 chardet.feedparser.org

    • *nix 命令行工具 file 检测文件类型,但如果文件中提到了编码(例如,如果在 文件)。见man file

    • Perl 模块 Encode::DetectEncode::Guess

    • 有人在 StackOverflow 中提出了类似的问题。搜索问题,PHP: Detect encoding and make all UTF-8。那是在从网上获取文件并使用 PHP 的上下文中,但您可以编写一个命令行 PHP 脚本。

    请注意 ICU 页面关于字符集检测的内容:“字符集检测......,充其量是使用统计和启发式的不精确操作......”根据我的经验,问题域在工作的难易程度。不要忘记,文件中的八位位组可能是不明确的编码,可以使用多种不同的编码进行合理解释。它们也可以是混合编码,字节的不同子集在不同的编码中解释是有意义的。这就是为什么没有一个我可以推荐的命令行工具总能完成这项工作。

    如果您有一个文件并且只想将其转换为已知编码,我的诀窍是使用文本编辑器打开文件,该编辑器可以使用一堆不同的编码(例如 TextWrangler 或 OpenOffice.org)进行导入。首先,打开文件,让编辑猜测编码。看看结果。如果您对它不满意,请猜测一个编码,使用指定该编码的编辑器打开文件,然后查看结果。然后另存为已知编码,例如UTF-16。

    【讨论】:

      【解决方案2】:

      您可以使用 enca。 Enca 是一个用于编码检测和转换的小型命令行工具。

      您可以通过以下方式在 debian / ubuntu 上安装它:

      apt-get install enca

      要使用它,只需调用

      enca 文件名

      另请参阅manpage 了解更多信息。

      【讨论】:

        猜你喜欢
        • 2011-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多