【发布时间】:2018-07-21 14:30:04
【问题描述】:
我有一些由不同字符编码方式编码的文本文件,例如ascii、utf-8、big5、gb2312。
现在我想知道它们准确的字符编码,以便用文本编辑器查看,否则会出现乱码。
我在网上搜索,发现file命令可以display the character encoding of a file,比如:
$ file -bi *
text/plain; charset=iso-8859-1
text/plain; charset=us-ascii
text/plain; charset=iso-8859-1
text/plain; charset=utf-8
不幸的是,用big5 和gb2312 编码的文件都存在charset=iso-8859-1,所以我仍然无法区分。
有没有更好的方法来检查文本文件的字符编码?
【问题讨论】:
-
@ewcz 谢谢。他们工作。
-
您无法可靠地检查编码,您只能猜测。
file猜测错误,uchardet更好,但两者都在猜测。 -
我很难相信你有 ASCII 编码文件。您的文件当前内容仅限于 C0 控件和基本拉丁字符的可能性更大。如果文件确实是 ASCII,也许您有这样的规范或标准。那么你就不需要猜测程序了。
-
当有人写一个文本文件时,他们选择了一种字符编码。那几乎从来不是ASCII。如果他们要选择 ASCII,他们可能会因为规范或标准而这样做。在任何情况下,阅读器都必须使用相同的编码来读取文件。因此,规范或标准是了解正在使用哪种编码的一种方法,您应该可以使用它。猜测非常粗略。您可以从样本中执行此操作。但是,如果文件是重复过程的一部分,那么该文件将来可能具有不同的内容,这可能会使猜测无效。
标签: linux encoding utf-8 character-encoding