2012-03-12 48 views
2

当我尝试编译(使用javac)时,一些java源文件包含注释行,其中有一些无法识别的字符,如ascii代码129(〜A),出现错误。如何在Windows中更改默认系统java encode form?

的源代码如下所示:

// ascii 129 is ? (Acutally it show ~A in VIM but show ? when I directly copy it here) 

上面的代码行是注释,应该不会引起任何错误,但如果这样做,我认为这应该是一个关于java的编码问题形式,我该如何解决这个问题?

谢谢。

Wa

+0

'129'不是一个有效的ASCII码。 ASCII只能达到'127'。 Codepoint'129'也是保留的,在ISO-8859-1中是未定义的,Unicode是超集。它在Windows-1252中也是未定义的,它在西方世界的计算机上在Windows上很受欢迎。简而言之,它并不代表一些最流行的编码中的字符,所以我很好奇哪种编码被用于对所讨论的Java源文件进行编码。 – 2012-03-27 15:52:52

回答

0

选择正确的java源代码。 UTF-8将是一个很好的要求标准。可以使用开源编辑器JEdit来测试源实际在哪个编码中.java工具native2ascii可以转换。

javac -encoding UTF-8 ... 
+0

如何更改默认的系统编码形式,以便我不必在javec之后每次都添加“-encoding xxx”? – user1232236 2012-03-12 06:07:27

+0

使用构建系统,如easy ** maven **,您可以在其中配置一次编码。像NetBeans一样,IDE将以某种编码方式提供编辑,并以某种编码进行编译。编辑某些非默认编码的问题似乎不值得更改Windows编码。您可以在Windows .java中将编译器/编译器与编码命令行参数相关联。 – 2012-03-12 15:59:38

+2

我发现一个解决方案,在Windows中,将系统变量JAVA_TOOL_OPTIONS设置为“-Dfile.encoding = UTF-8”,它将起作用。 – user1232236 2012-03-13 04:26:56

相关问题