相关疑难解决方法(0)

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

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

javac -encoding "UTF-8" One.java
Run Code Online (Sandbox Code Playgroud)

但它给出了一条错误消息"

One.java:1: illegal character: \65279

?public class One {

^
1 error
Run Code Online (Sandbox Code Playgroud)

还有其他方法,我可以编译吗?

这是来源:

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

java unicode compiler-errors javac

28
推荐指数
5
解决办法
7万
查看次数

使用BOM编译(javac)UTF8编码的Java源代码

您好,感谢您阅读我的帖子.

我的问题如下:我想用"javac"编译一个Java源文件,该文件是用BOM(操作系统是WinXP)进行UTF-8编码的.

以下是我的工作:

1)使用"记事本"创建文件,然后选择UTF-8编码

dos> notepad Test.java
"File -> Save as..."
File name   : Test.java
Save as type: All Files
Encoding    : UTF-8
Save
Run Code Online (Sandbox Code Playgroud)

2)在该文件中创建一个Java类并保存文件,如1)

public class Test
{
    public static void main(String [] args)
    {
        System.out.println("This is a test.");
    }
}
Run Code Online (Sandbox Code Playgroud)

3)可视化文件的十六进制版本(第一行)

dos> xxd Test.java | head -1
0000000: efbb bf70 7562 6c69 6320 636c 6173 7320  ...public class
Run Code Online (Sandbox Code Playgroud)

注意: ef bb bf是UTF-8编码的BOM(UTF-16编码的BOM是FE FF).

4)尝试使用"javac"编译此代码

dos> javac -encoding utf8 Test.java
Test.java:1: illegal character: \65279
?public class …
Run Code Online (Sandbox Code Playgroud)

byte-order-mark javac utf-8

15
推荐指数
2
解决办法
4万
查看次数

标签 统计

javac ×2

byte-order-mark ×1

compiler-errors ×1

java ×1

unicode ×1

utf-8 ×1