源代码是否应以 UTF-8 格式保存

2022-09-01 05:22:12

以 UTF-8 格式保存源代码有多重要?

Windows 上的 Eclipse 默认使用 CP1252 字符编码。CP1251格式意味着可以保存非UTF-8字符,如果您从Word文档复制并粘贴注释,我已经看到这种情况发生。

我问的原因是,出于习惯,我将Maven编码设置为UTF-8格式,最近它捕获了一些不可映射的错误。

(更新)请添加这样做的任何原因,为什么,是否有一些应该知道的常见陷阱?

(更新)您的目标是什么?为了找到最佳实践,所以当问我们为什么要使用UTF-8时,我有一个很好的答案,现在我没有。


答案 1

您的目标是什么?平衡您的需求与这种选择的利弊。

UTF-8 优点

  • 允许使用所有字符文字而不转义\uHHHH

UTF-8 缺点

  • 使用非 ASCII 字符文本,而不会增加字符损坏的风险\uHHHH
    • 可能会出现字体和键盘问题
    • 需要记录并在所有工具(编辑器,编译器构建脚本,差异工具)中强制使用UTF-8
  • 当心字节顺序标记

ASCII Pros

  • 字符/字节映射由各种编码共享
    • 使源文件非常便携
    • 通常不需要指定编码元数据(因为如果将文件重新编码为 UTF-8、Windows-1252、ISO 8859-1 以及大多数缺少 UTF-16 和/或 EBCDIC 的文件,则这些文件将是相同的)

ASCII 缺点

  • 有限的字符集
  • 这不是1960年代

注意:ASCII 是 7 位的,不是“扩展的”,不要与 Windows-1252、ISO 8859-1 或其他任何内容混淆。


答案 2

重要的是,至少您需要与用于避免鲱鱼的编码保持一致。因此,这里不是X,那里是Y,其他地方是Z。在编码中保存源代码 X.将代码输入设置为编码 X.将代码输出设置为编码 X.将基于字符的 FTP 传输设置为编码 X。等等。

如今是一个不错的选择,因为它涵盖了人类世界所意识到的每一个角色,并且在任何地方都得到了支持。所以,是的,我也会为它设置工作区编码。我也这样使用它。UTF-8


推荐