[英]Can not open file with special charecters from Java when using Eclipse on MacOSX
朋友們,編碼問題,
假設我們有這樣的代碼:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
public class UTF8Main {
public static void main(String[] args) {
try {
System.out.println(System.getProperty("file.encoding"));
System.out.println(Charset.defaultCharset());
File file = new File("Hello World ÄÖÜ.rtf");
Desktop.getDesktop().open(file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
如果從Mac上的Eclipse運行此命令,則會得到以下輸出:
UTF-8
UTF-8
Exception in thread "main" java.lang.IllegalArgumentException: The file: Hello World ÄÖÜ.rtf doesn't exist.
at java.awt.Desktop.checkFileValidation(Desktop.java:209)
at java.awt.Desktop.open(Desktop.java:270)
at UTF8Main.main(UTF8Main.java:16)
如果從終端運行它,將得到以下輸出...
$java -cp ./bin UTF8Main main
UTF-8
UTF-8
...然后該文件在TextEdit中打開。
在Windows上從Eclipse執行相同的操作...
UTF-8
UTF-8
...然后打開文件。
從Windows CMD ...
>java -cp ./bin UTF8Main main
Cp1252
windows-1252
...然后打開文件。
有人知道嗎
我找到了解決方案。 在OSX上的Eclipse中的Preferences-> Java-> Installed JRE中,我將Java 1.7.0_10作為默認的JRE,其中Mac Terminal和Windows Eclipse使用1.7.0_40。
因此,將所有開發環境更新到最新的1.7.0_80可以解決我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.