我想知道什麼是Java虛擬機(JVM)屬性的值設置我的文件編碼爲UTF-8。JVM屬性-Dfile.encoding = UTF8或UTF-8?
我可以把-Dfile.encoding=UTF8
或-Dfile.encoding=UTF-8
?
我想知道什麼是Java虛擬機(JVM)屬性的值設置我的文件編碼爲UTF-8。JVM屬性-Dfile.encoding = UTF8或UTF-8?
我可以把-Dfile.encoding=UTF8
或-Dfile.encoding=UTF-8
?
UTF8和UTF-8都適用於我。
如果一個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
...指出的是,默認字符集已經從規範化到UTF8
UTF-8
。
這不是一個直接的答案,但是如果你無法訪問java的啓動方式會非常有用:你可以設置環境變量JAVA_TOOLS_OPTIONS
爲-Dfile.encoding="UTF-8"
,並且每當jvm啓動時它都會選擇該選項。
其實我已經看過這個頁面了。但是,我不知道哪個「java.nio API的規範名稱」或者我必須使用的「java.io和java.lang API的規範名稱」。 – astrotouf 2011-05-17 14:29:57
UTF8和UTF-8都可以工作嗎? – dlamblin 2014-01-08 16:01:26
這兩個工作,但'UTF-8'優於'UTF8' - 唯一的標準格式。 – Tiny 2016-02-12 05:39:45