代码之家  ›  专栏  ›  技术社区  ›  Pablo Cabrera

在Eclipse中使用UTF-8文件

  •  28
  • Pablo Cabrera  · 技术社区  · 15 年前

    非常直截了当的问题。有没有一种方法可以将Eclipse配置为使用带或不带BOM的UTF-8编码的文本文件?

    到目前为止,我已经将Eclipse与UTF-8编码结合使用,并且它可以正常工作,但是当我试图编辑由另一个编辑器(包括BOM)生成的文件时,Eclipse没有正确处理它,它在文件(BOM)的开头“显示了一个不可见的字符”。有没有一种方法可以让Eclipse用BOM理解UTF-8编码的文件?

    1 回复  |  直到 15 年前
        1
  •  18
  •   VonC    15 年前

    两个 bug 78455 (提供一个强制将BOM写入UTF-8文件的选项)和 bug 136854 不要为这样的选择留下太多希望。

    工作空间中的编码支持是基于Java可用的。 .
    对于工作空间中的任何给定资源,可以获得一个字符集字符串,该字符串可以与任何使用字符集字符串的Java API一起使用。
    例子有:

    • US-ASCII ',
    • UTF-8 ',
    • Cp1252 ',
    • UTF-16 '(自动插入big endian和bom)
    • UTF-16BE '(big endian,BOM不自动插入)
    • UTF-16LE '(小endian,BOM不会自动插入)。

    对于Java编码,除了“UTF 16”编码之外,BOM不会被插入(写入时)或被丢弃(当读取时)。 .
    即使这对最终用户感到困惑,这也是所有Java应用程序的工作方式。
    如果应用程序希望支持使用BOM创建UTF-8文件,以满足用户的期望,那么他们需要自己提供这种功能。 (既不是Java也不是资源模型将有助于这一点)。
    Eclipse确实在检测bom方面提供了一些改进,但没有生成或跳过它们。