運行下面的(例子)代碼的Java的InputStream編碼/字符集
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 [byte] (char)? (int)63 test.java:10 [char] (char)? (int)229 test.java:11 string below ? test.java:13 string above
如何在線路9保持正確字節值(-27)打印?並因此獲得System.out.println(s)
命令(å)的預期輸出。
s.getBytes(「ISO-8859-1」)做的伎倆,謝謝。我只是用它來追蹤我讀取的文件內容在讀取文件到向用戶顯示數據的路徑中發生了變化。 – Tobbe 2010-06-15 13:02:41
@Tobbe:很高興幫助。儘管如此,將來最好不要將它轉換成文本。當然,除非它真的是* ISO-8859-1編碼的文本文件。 – 2010-06-15 13:51:09