如何在while循环中将带有UTF-8字符串的int数组转换为StringBuilder?例如:
int array: 71, 73, 70, 56, 57, 97, 149, 0, 55, 0, 247...
结果字符串: GIF89a• €÷€ €€€ÀÜÀ|Êð*?ª*?ÿ ...
该行包含拉丁文、西里尔文和亚洲字符,以及各种符号和数字
do buffer.append((char)num[++i]);
while((byte)buffer.charAt(buffer.length()-1) != -1);
Run Code Online (Sandbox Code Playgroud)
此方法分解所有非拉丁字符。
我使用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);
Run Code Online (Sandbox Code Playgroud)
但是所有非拉丁字符都变为“?” 并且图像损坏了http://s019.radikal.ru/i602/1205/7c/9df90800fba5.gif
通过传输未压缩的图像,我使用了BufferedReader,并且一切正常
BufferedReader is =
new BufferedReader(
new InputStreamReader( download.getInputStream()));
Run Code Online (Sandbox Code Playgroud)