2013-03-08 59 views
0

我試圖打印如下的一些中文字符,但這不起作用。我想應該有一些編碼需要完成。你能幫忙嗎?如何確定正確的編碼?

public static void main(String[] args) 
{ 
    String myString = "奧妙洗衣粉"; 
    System.out.println(myString); 

    // Output in eclipse: Some characters cannot be mapped using Cp1252 character encoding. 
    // Either change the encoding or remove the characters which are not supported 
    // by the Cp1252 character encoding. 
} 

編輯:我怎樣才能做到這一點(變化/應用編碼)打印字符串之前編程?

+0

檢查Eclipse首選項工作區編碼。 – dkateros 2013-03-08 09:18:45

回答

0

一個tutorial您可以更改文件輸出的默認編碼:

new PrintWriter(fileName, "UTF-8"); 

另一個問題,編譯器只能讀取ASCII字符(但JVM可以閱讀其他人也)。這意味着,字符串不能從外來字符構建。正確的方式做到這一點,決定了字符的Unicode - 4字符的十六進制代碼 - 而建立這樣的:

String myString = "\u3b12\uc2d4hello" 

這將創建的第一個字符的代碼3b12(與\u Unicode字符轉義)的字符串+ c2d4 +你好。

這裏是我的輸出:

㬒싔hello 
+0

那麼這裏'fileName'是什麼? – yonan2236 2013-03-08 10:16:56

+0

應該輸出的地方。 – Mordechai 2013-03-08 10:19:22

1

Windows-1252字符編碼不支持您的代碼中的字符。使用UTF-8。

+0

如何在打印字符串之前以編程方式執行此操作? – yonan2236 2013-03-08 09:19:42

+0

你不需要在Java本身做任何事情。 Java默認支持在其字符串中內置UTF。 – Will 2013-03-08 09:21:00

+0

更改*文件*的編碼。 Eclipse爲項目中的所有文件提供了一種方法。 – 2013-03-08 09:21:15

0

eclipse中的控制檯默認不支持這些字符。 這裏是對