Запуск следующее (пример) код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
Как сохранить правильное значение байта (-27) в линии 9 распечатать? И, следовательно, получите ожидаемый вывод команды System.out.println(s)
(å).
s.getBytes («ISO-8859-1») сделал трюк, спасибо. Я использовал его только для отслеживания, когда содержимое файла, которое я читал, изменилось по пути от чтения файла до представления данных пользователю. – Tobbe
@Tobbe: Рад, что это помогло. Было бы лучше не преобразовывать его в текст вообще, но в будущем. Разумеется, если это действительно * есть * текстовый файл с ISO-8859-1. –