2011-05-17 130 views

回答

49

這將是:

UTF8 

的定義見here

+1

其實我已經看過這個頁面了。但是,我不知道哪個「java.nio API的規範名稱」或者我必須使用的「java.io和java.lang API的規範名稱」。 – astrotouf 2011-05-17 14:29:57

+1

UTF8和UTF-8都可以工作嗎? – dlamblin 2014-01-08 16:01:26

+5

這兩個工作,但'UTF-8'優於'UTF8' - 唯一的標準格式。 – Tiny 2016-02-12 05:39:45

6

UTF8和UTF-8都適用於我。

12

如果一個Linux平臺,您的區域表明UTF-8上運行Oracle JDK熱點1.7.x(例如LANG=en_US.utf8),如果你不把它與-Dfile.encoding命令行中,JDK將默認file.encoding和默認Charset這樣的:

System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding"))); 
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name())); 

...產量:

file.encoding: UTF-8 
defaultCharset: UTF-8 

...提示默認爲UTF-8這樣的一個平臺上。

此外,如果java.nio.charset.Charset.defaultCharset()發現file.encoding沒有定式,它看起來java.nio.charset.Charset.forName("UTF-8"),表明它更該字符串,雖然它是很好的鋸齒,所以「UTF8」也將正常工作。

如果您用java -Dfile.encoding=UTF8在同一平臺上同一個程序,沒有連字符,它產生:

file.encoding: UTF8 
defaultCharset: UTF-8 

...指出的是,默認字符集已經從規範化到UTF8UTF-8

5

這不是一個直接的答案,但是如果你無法訪問java的啓動方式會非常有用:你可以設置環境變量JAVA_TOOLS_OPTIONS-Dfile.encoding="UTF-8",並且每當jvm啓動時它都會選擇該選項。