簡體   English   中英

無法讀取特殊字符(Java)

[英]Trouble reading special characters (Java)

我正在制作一個使用特殊加密的聊天客戶端。 從輸入緩沖區讀取諸如«,ƒ,letters之類的字母時會出現問題。

我把它們讀成字節數組,我嘗試使用

Connection.getInputStream().read();

並且還使用

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

但似乎存在問題,因為它將它們顯示為方框。

您必須確保您的InputStreamReader使用相同的字符集將字節解碼為字符,而不是發送方將字符編碼為字節的字節。 查看InputStreamReader的其他構造函數。

您還必須確保用於顯示字符的字體支持您的特殊字符。

通過new InputStreamReader(..,"utf-8")或您輸入的任何內容在流上設置正確的編碼。

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

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

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

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

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

  char c = in.readChar();

應該做你想做的事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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