2013-09-23 50 views
0

我正在從Unix運行我的Java程序。爲了簡化問題,我只描述相關部分。Java Unix字符編碼

public static void main(String[] args) { 
    System.out.println("féminin"); 
} 

我的輸出是垃圾。這顯然是一個字符編碼問題,法國字符é沒有正確顯示。我試過以下內容:

public static void main(String[] args) { 
    PrintStream ps = new PrintStream(System.out, true, "ISO-8859-1"); 
    ps.println("féminin"); 
} 

但是我的輸出仍然顯示?在法國字符palce。
我在命令提示符下運行sam efile,java -Dfile.encoding=IBM437 DSIClient féminin
它工作正常。但是,我怎樣才能解決這個與Unix的字符編碼問題?謝謝

+0

http://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding?rq=1 –

回答

1

問題很可能是您的代碼編輯器和您的終端仿真程序使用不同的編碼,並且Java的默認編碼概念可能會有所不同。

要查看您的終端和您的編輯是否同意,您可以簡單地使用cat您的java源文件。 é是否正確顯示?如果是這樣,在源代碼編輯器和終端中使用相同的編碼,但它不是Java的默認編碼。如果OTOH看不到「é」,則需要找出終端和編輯器使用的編碼方式,並使它們一致。

+0

如何找到終端的編碼 – user1912935

+0

@ user1912935這取決於。 UNIX有這麼多的終端仿真。如果我在終端窗口中右鍵單擊,我會看到一個菜單,其中一個子菜單是「字符編碼」。這是Suse Linux上的「Konsole」。 – Ingo