2012-09-16 149 views
2

如何在java中使用特殊字符? 它們屬於Cp1252字符編碼。 我嘗試在消息中使用它們,但我無法使用它們。Java中的特殊字符

字符,如: 「︻ー┳═デ」

+0

您是試圖在源代碼中寫入字符還是打印他們輸出?你可以請張貼一些代碼來展示你如何使用這些角色。 – Nicholas

+2

日本片假名DE是**不**在CP1252 – ninjalj

+0

@ ninjalj當我嘗試保存它時,它給出CP1252錯誤 @尼古拉斯我使用外部API。 ()+ ChatColor.RED + attacker.getName()); – user1621988

回答

3

使用相關UTF值,例如在http://www.fileformat.info/info/unicode/char/search.htm查找 'デ' 給出\ u30C7的值,以便您可以:

System.out.println("\u30C7"); // as string 

System.out.println('\u30C7'); // as char 
+0

System.out.println(\ u30C7); - >無法解析 \t \t System.out.println(「\ u30C7」); - >輸出:? 如何正確使用這些UTF? – user1621988

+0

糾正示例 –

+0

好的,兩個輸出都是?,怎麼能解決這個問題? – user1621988

0

您可能會在System.out左右換行PrintWriter,以明確設置字符集。

final String charset = "UTF-8"; 
PrintWriter out = null; 
try { 
    out = new PrintWriter(new OutputStreamWriter(System.out, charset), true); 
} catch(UnsupportedEncodingException e) { 
    e.printStackTrace(); 
} 

至於?作爲字符顯示 - 這真的取決於你在哪裏輸出標準輸出流。在標準的Ubuntu終端 - 它可能看起來不錯(我可以測試它)。但是,在Windows'cmd上,您應該手動設置代碼頁Chcp並提供這些字符附帶的字體。

對Eclipse來說也是如此,它的控制檯字符集是UTF-8,我相信,但是如果你沒有帶日文字符的字體,它對你無能爲力。

0

當您在Java代碼中使用帶有特殊字符的字符串文字時,還必須通知Java編譯器編碼Java文件本身的編碼。

假設您編輯了您的Java文件(包含日文文本文本)並將其保存爲UTF-8文件。您必須,然後,告訴編譯器把源文件爲UTF-8號文件:

javac -encoding UTF-8 file1 file2 ...

否則,Java編譯器將假定Java文件是使用操作系統的默認編碼編碼,這不一定是你想要的。