2011-01-19 99 views
3

我正在製作一個使用特殊加密的聊天客戶端。從輸入緩衝區讀取諸如«,ƒ,̕的字母時出現問題。閱讀特殊字符時出錯(Java)

即時閱讀它們轉化爲字節數組,我試着用

Connection.getInputStream().read(); 

而且還使用

BufferedReader myInput = new BufferedReader(
    new InputStreamReader(Connection.getInputStream())); 

但似乎是一個問題,因爲它顯示他們爲方框。

+0

如果您使用Windows並在命令行上運行,則不會顯示unicode字符。 – Andreas 2011-01-19 22:39:51

回答

-1

您可以嘗試使用DataInputStream和readChar()方法。

DataInputStream in = new DataInputStream(myinput); 
    //where muinput is your BufferedInputStream. 

    char c = in.readChar(); 

應該做你想做的。

+0

沒有解決OP代碼對默認編碼敏感的基本問題,而不是正在讀取的資源編碼。 – 2011-01-19 22:49:57

4

你必須確保你的InputStreamReader使用相同的字符集的字節解碼成字符比使用發件人字符編碼成字節的一個。看看InputStreamReader的其他構造函數。

你也必須確保你使用的顯示字符的字體支持的特殊字符。

4

通過new InputStreamReader(..,"utf-8")或任何你輸入的是坐落在流正確的編碼。

0

Conver字節數組到字符串指定字符集。

String data = new String(byte[], "UTF-8"); 

確保顯示的字體支持UTF-8或您指定的編碼字符集。