尝试编译Java代码时出现非法字符

我有一个程序,允许用户在富文本框中键入Java代码,然后使用Java编译器对其进行编译。每当我尝试编译自己编写的代码时,都会收到一条错误消息,提示我在我的代码开头没有一个非法字符。这是编译器给我的错误:

C:\Users\Travis Michael>"\Program Files\Java\jdk1.6.0_17\bin\javac" Test.java

Test.java:1: illegal character: \187

public class Test

^

Test.java:1: illegal character: \191

public class Test

^

2 errors

回答:

当您不指定编码时,BOM由File.WriteAllText()或StreamWriter生成。默认值为使用UTF8编码并生成BOM。您可以使用-

encoding命令行选项将此内容告知Java编译器。

阻力最小的路径是避免生成BOM。通过指定System.Text.Encoding.Default来执行此操作,该操作将在操作系统的默认代码页中将包含字符的文件写入文件,并且不会编写BOM。使用File.WriteAllText(String,String,Encoding)重载或StreamWriter(String,Boolean,Encoding)构造函数。

只要确保您创建的文件不会被世界另一端的机器编译即可。它将产生mojibake。

以上是 尝试编译Java代码时出现非法字符 的全部内容, 来源链接: utcz.com/qa/410944.html

回到顶部