【发布时间】:2012-05-24 18:19:07
【问题描述】:
我使用 InputStreamReader 传输压缩图像。 InflaterInputStream 用于图片的解压
InputStreamReader infis =
new InputStreamReader(
new InflaterInputStream( download.getInputStream()), "UTF8" );
do {
buffer.append(" ");
buffer.append(infis.read());
} while((byte)buffer.charAt(buffer.length()-1) != -1);
但是所有非拉丁字符都变成了“?”并且图像坏了http://s019.radikal.ru/i602/1205/7c/9df90800fba5.gif
我使用 BufferedReader 传输未压缩图像,一切正常
BufferedReader is =
new BufferedReader(
new InputStreamReader( download.getInputStream()));
【问题讨论】:
-
图像文件通常是二进制文件,为什么要将它们转换为字符?
-
我在哪里转换它们? read() 给了我不正确的数据(字节 65533)
-
当您说
buffer.append(" ")时,您似乎正在转换它们 -
不,已经在使用
Reader/Writer时。
标签: java utf-8 character inputstreamreader