为什么“file -i”将文件编码确定为 ASCII,但在 git 存储库中它实际上是 UTF-8

为什么“file -i”将文件编码确定为 ASCII,但在 git 存储库中它实际上是 UTF-8

有两种情况令我感到困惑:

  1. 如果新创建的文件只包含拉丁符号,则将file -i显示us-ascii
  2. 如果新创建的文件仅包含拉丁和西里尔符号,则将file -i显示utf-8

我使用几种在 git 存储库的本地副本中创建文件的工具测试了这种行为:intellij idea、nano、echo 等。

但是,当我将这些文件推送到远程存储库时,Windows 操作系统上的参与者将该文件确定为 UTF-8。

答案1

因此,由于在文件创建过程中没有生成 BOM,因此无法区分 ASCII 和 UTF-8。因此,就prediction文件编码的正确性而言,最好回答 ASCII,而不是 UTF-8(如果两者都只包含拉丁字符),因为 UTF-8 涉及更多字符代码。

因此file -i尽力而为。

谢谢费东卡迪费利寻求帮助。

相关内容