2012-03-12 43 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

相關問題