-2
我从超级终端通过套接字获取数据,我的问题是,当我连续输入数据(像'aaaa'相同的字母)它将被转换为aaáa。第三个字母更改为其他格式。请提供解决方案..我没有从字符串缓冲区连续得到正确的数据
SocketChannel sChannel = (SocketChannel)selKey.channel();
ByteBuffer bb=ByteBuffer.allocateDirect(1024);
sChannel.read(bb);
bb.flip();
Charset charset = Charset.forName("ISO-8859-1");
CharsetDecoder decoder = charset.newDecoder();
String str=decoder.decode(bb).toString();
StringBuffer sb = (StringBuffer)selKey.attachment();
sb.append(str);
bb.clear();
String line = sb.toString();
if ((line.indexOf("\n") != -1) || (line.indexOf("\r") != -1))
{
sb.delete(0,sb.length());
System.out.print(line);
}
在此先感谢
什么语言??! – 2011-01-06 11:07:06
java ..第三个字符正在改变.. – pmad 2011-01-06 11:08:07