ISO文件中的ISO-8859是什么意思?

时间:2012-02-06 12:20:35

标签: file encoding utf-8 iso-8859-1 iconv

我在可以访问的软件存储库中运行以下命令:

  找到。 -not -name“ .svn ” - type f -exec file“{}”\;

并看到许多输出行,如

  

./ File.java:ISO-8859 C ++程序文本

这是什么意思? ISO-8859是一种编码,而不是某种编码。我期望所有文件都是UTF-8,但大多数文件都是以编码形式出现的。 ISO-8859也是UTF-8的合适子集吗?

我是否可以使用ISO-8859-1作为源编码安全地转换所有这些文件,同时将其转换为带iconv的UTF-8?

3 个答案:

答案 0 :(得分:1)

问题不同,但我认为答案正是您所寻找的:

Linux & C-Programming: How can I write utf-8 encoded text to a file?

答案 1 :(得分:1)

我担心Unix file程序在这方面相当糟糕。它只是意味着它是一个字节编码。这并不意味着它是ISO-8859-1。它甚至可能在非ISO字节中,尽管它通常会表明这一点。

我的系统比文件好得多,但它是在英语语料库上训练的,所以可能不如德语那么好。

简短的回答是file的结果不可靠。您必须知道要转换它的真实编码。

答案 2 :(得分:0)

file使用的字符集检测相当简单。它承认UTF-8。它通过查找ISO 8859编码具有“漏洞”的0x80-0x9F范围内的字节来区分“ISO-8859”和“非ISO扩展ASCII”。但它没有尝试确定正在使用哪种 ISO 8859编码。这就是为什么它只是说ISO-8859而不是ISO-8859-1ISO-8859-15