我正在制作一个使用特殊加密的聊天客户端。从输入缓冲区读取诸如«,ƒ,letters之类的字母时会出现问题。
我将它们读入一个字节数组,我尝试使用
Connection.getInputStream().read();
并且还使用
BufferedReader myInput = new BufferedReader(
new InputStreamReader(Connection.getInputStream()));
但似乎存在问题,因为它将它们显示为方框。
答案 0 :(得分:4)
您必须确保您的InputStreamReader使用相同的字符集将字节解码为字符,而不是发送方将字符编码为字节的字节。查看InputStreamReader的其他构造函数。
您还必须确保用于显示字符的字体支持您的特殊字符。
答案 1 :(得分:4)
通过new InputStreamReader(..,"utf-8")
或您输入的内容在流上设置正确的编码。
答案 2 :(得分:0)
将字节数组转换为指定字符集的String。
String data = new String(byte[], "UTF-8");
确保显示字体支持UTF-8或指定的编码字符集。
答案 3 :(得分:-1)
您可以尝试使用DataInputStream和readChar()方法。
DataInputStream in = new DataInputStream(myinput);
//where muinput is your BufferedInputStream.
char c = in.readChar();
应该做你想做的事。