我通过mysqldump导出到一个文件。如何找出文件的文件编码?

时间:2009-12-12 04:00:34

标签: mysql linux unicode ubuntu mysqldump

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

2 个答案:

答案 0 :(得分:1)

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

  • 国际化Unicode类(ICU)是一个很好的起点。请参阅Character Set Detection上的页面。

  • Chardet 是一个猜测编码的Python模块 一个文件。见chardet.feedparser.org

  • * nix命令行工具文件检测文件类型,但如果在文件中提到,也可能检测到编码(例如,如果有mime类型表示法) 文件)。请参阅man file

  • Perl模块编码::检测编码::猜测

  • 有人在StackOverflow中提出了类似的问题。搜索问题, PHP:检测编码并将所有内容设为UTF-8 。这是在从网络中获取文件并使用PHP的上下文中,但您可以编写命令行PHP脚本。

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

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

答案 1 :(得分:0)

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

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

  

apt-get install enca

要使用它,只需致电

  

enca FILENAME

另请参阅manpage了解详情。