[英]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.