如何编译编码为“UTF-8”的java源文件?

2022-09-01 09:11:54

我保存了我的Java源文件,将其编码类型指定为UTF-8(使用记事本,默认情况下记事本的编码类型为ANSI),然后我尝试使用以下内容进行编译:

javac -encoding "UTF-8" One.java

但它给出了一个错误消息”

One.java:1: illegal character: \65279

?public class One {

^
1 error

有没有其他方法,我可以编译这个?

来源如下:

public class One {
    public static void main( String[] args ){
        System.out.println("HI");
    }
} 

答案 1

您的文件读取为 UTF-8,否则值“65279”的字符将永远不会出现。 根据 javac 文档,期望您的源代码采用平台默认编码:javac

如果未指定 -编码,则使用平台默认转换器。

十进制 65279 是十六进制 FEFF,即 Unicode 字节顺序标记 (BOM)。这在 UTF-8 中是不必要的,因为 UTF-8 始终编码为八位字节流,并且没有字节序问题。

记事本喜欢在不需要时粘贴在BOM中,但有些程序不喜欢找到它们。正如其他人指出的那样,记事本不是一个很好的文本编辑器。切换到其他文本编辑器几乎肯定会解决您的问题。


答案 2

在记事本++ 中打开该文件,然后选择编码 ->转换为不带 BOM 的 UTF-8。


推荐