【发布时间】:2011-03-03 21:22:09
【问题描述】:
运行以下(示例)代码
import java.io.*;
public class test {
public static void main(String[] args) throws Exception {
byte[] buf = {-27};
InputStream is = new ByteArrayInputStream(buf);
BufferedReader r = new BufferedReader(
new InputStreamReader(is, "ISO-8859-1"));
String s = r.readLine();
System.out.println("test.java:9 [byte] (char)" + (char)s.getBytes()[0] +
" (int)" + (int)s.getBytes()[0]);
System.out.println("test.java:10 [char] (char)" + (char)s.charAt(0) +
" (int)" + (int)s.charAt(0));
System.out.println("test.java:11 string below");
System.out.println(s);
System.out.println("test.java:13 string above");
}
}
给我这个输出
test.java:9 [字节](字符)? (int)63 test.java:10 [char] (char)? (int)229 test.java:11 下面的字符串 ? test.java:13 上面的字符串如何在第 9 行打印输出中保留正确的字节值 (-27)?并因此收到 System.out.println(s) 命令 (å) 的预期输出。
【问题讨论】:
标签: java encoding iso-8859-1