-1

当我在 Vim/Linux 中创建了一个文件并在文件中:set fileencoding=utf-8有变音符号(例如德语变音符号)时,然后将file myfile.txt结果调用到myfile.txt: UTF-8 Unicode text. 如果我在文件中没有变音符号,则确定文件编码结果为myfile.txt: ASCII text.

这是为什么?我怎样才能安全地确定一大堆文件是通过使用 UTF-8 文件编码正确编码的?

编辑:

ASCII 是 7 位的,是 UTF-8 的子集。我想知道我的源文件是否以 UTF-8 编码,以便它们可以在将来的某个时间保存变音符号。IMO 这并不明显,我想找到一种方法来安全地确定这一点。

4

1 回答 1

0

没有通用且可靠的方法来查找文本文件使用哪种编码。此外,相当多的编码是 ASCII-7 的超集(UTF-8、ISO 8859-*、...)

在 UTF-8 的情况下,一个技巧是在文件的开头添加一个(否则不必要的)BOM(字节顺序标记)。在这种情况下file,显示如下:

some.txt: UTF-8 Unicode (with BOM) text

我认为vim选项是::set bomb

不幸的是,虽然大多数编辑都了解 BOM,但 bash 不了解。不要将它添加到 shell 脚本中!

于 2016-01-28T11:33:30.740 回答