当前位置: 首页 > 面试题库 >

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

吉玉宸
2023-03-14
问题内容

将您的源代码保存为UTF-8格式有多重要?

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

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

(更新)请添加执行此操作的任何原因以及为什么,应该知道一些常见的陷阱?

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


问题答案:

你的目标是什么?平衡您的需求和选择的利弊。

UTF-8优点

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

UTF-8缺点

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

ASCII优点

  • 字符/字节映射由多种编码共享
    • 使源文件非常可移植
    • 通常会避免指定编码元数据的需要(因为如果将文件重新编码为UTF-8,Windows-1252,ISO 8859-1以及大多数缺少UTF-16和/或EBCDIC的文件,它们将是相同的)

ASCII缺点

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

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



 类似资料:
  • 问题内容: 考虑: 如何在源代码中声明UTF-8字符串? 问题答案: 在源头中,你可以声明: 在PEP 0263中进行了描述: 然后,你可以在字符串中使用UTF-8: 在Python 3中不需要此声明,因为UTF-8是默认的源编码(请参阅PEP 3120)。 此外,值得验证你的文本编辑器是否已将代码正确编码为UTF-8。否则,你可能会有不被解释为UTF-8的不可见字符。

  • 问题内容: 我有一堆不是UTF-8编码的文件,我正在将网站转换为UTF-8编码。 我对要保存在utf-8中的文件使用了简单的脚本,但是文件以旧编码保存: 如何以utf-8编码保存文件? 问题答案: file_get_contents / file_put_contents不会神奇地转换编码。 您必须显式转换字符串。例如使用或。 尝试这个: 或者,使用PHP的流过滤器:

  • 问题内容: 我正在尝试将Shift_JIS格式的文件转换为UTF-8格式。为此,下面是我的方法: 读取Shift_JIS文件 每行的getBytes并将其转换为UTF-8 创建新文件并将UTF-8转换后的值写入该文件 问题是在第2步中没有发生转换。我正在使用下面的代码将Shift_JIS转换为UTF-8: 请让我知道是否需要其他信息。 我有以下两个 问题 : 1.还有其他更好的方法(步骤)来执行此

  • 问题内容: 我正在使用JDT生成一些类。之后,我想格式化整个ICompilationUnit,就像我在没有选择的打开的编辑器中按Ctrl + Shift + F(源>格式)一样。 高度赞赏JDT中用于以编程方式格式化源代码的API的任何指针。 另外:我像这样尝试过,但是代码没有改变。我在说什么 问题答案: 这可能是一个错误,但是使用Elcipse 4.2.2中的JDK时,有必要创建ICompila

  • 问题内容: 我正在尝试为一个类编写二进制搜索程序,并且我很确定自己的逻辑是正确的,但是我一直收到非UTF-8错误。我从未见过此错误,任何帮助/说明都将是非常棒的!谢谢你 这是代码。 问题答案: 您的编辑器用U + 2018左单引号字符替换了(ASCII 39),通常是您使用Word或类似的字处理器而不是纯文本编辑器的符号;文字处理器会尝试使您的文字“更漂亮”,并自动将诸如简单引号等内容替换为花哨的

  • 问题内容: 我想重写JDK 的实现并重新编译。 在哪里可以找到JDK8 / JavaFX 8的源代码? 问题答案: JavaFX 8的源可在以下位置获得: http://hg.openjdk.java.net/openjfx/8/master/rt 今天,JavaFX 8几乎是完全开源的。 使用OpenJDK 8构建JavaFX 8的说明