如何从java中字节范围之外的输入流中读取有效的utf-8字符0xC2 0x85?
我有一个包含有效utf8字符0xC2 0x85(U+0085)的输入流。如何在java中正确阅读和打印这些内容?我认为使用字节数组没有帮助,因为0x85超出了范围。基本上,我需要读取来自java中包含0xC2 0x85的套接字的utf8字符,如果您在UTF-8(is)中有一个有效流,那么使用如何从java中字节范围之外的输入流中读取有效的utf-8字符0xC2 0x85?,java,Java,我有一个包含有效utf8字符0xC2 0x85(U+0085)的输入流。如何在java中正确阅读和打印这些内容?我认为使用字节数组没有帮助,因为0x85超出了范围。基本上,我需要读取来自java中包含0xC2 0x85的套接字的utf8字符,如果您在UTF-8(is)中有一个有效流,那么使用 Reader rdr = new InputStreamReader(is, "UTF-8"); 这将UTF-8字节转换为Java字符这对您有用吗:它没有帮助。我正在吃这样的东西。。。。字节[]缓冲
Reader rdr = new InputStreamReader(is, "UTF-8");
这将UTF-8字节转换为Java字符这对您有用吗:它没有帮助。我正在吃这样的东西。。。。字节[]缓冲区=新字节[10240];socket.getInputStream().read(buffer)为什么您认为
0x85
超出范围?字节在Java中被签名,这只意味着0x85(dec 133)将被解释为(字节)133-256=-123。没问题。无论如何,这与您的目标无关,要将字节转换为字符,请使用为您完成工作的InputStreamReader
。