簡體   English   中英

在MacOSX上使用Eclipse時無法使用Java的特殊字符打開文件

[英]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

...然后打開文件。

有人知道嗎

  1. 如何使Mac上的Eclipse正常運行?
  2. 為什么Windows Eclipse會在控制台上打印UTF-8(可選,只是為了了解發生了什么事情)?

我找到了解決方案。 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM