если я печатать строки Юникод как Переходов на консоли, используя print
метод System.out
потока, его печататься, как и ожидалось (как я использую Ubuntu моно в моей консоли вывода, который поддерживает символы UTF).чтения и записи в UTF-8 символов из потока System.in
Но если я пытаюсь читать из символов юникода консоли с кодировкой UTF-8, используя поток System.in, он не читается правильно. Я пробовал много разных способов добиться этого, используя различные классы читателей с потоком System.in, но он никогда не работает. Так кто-нибудь знает, как я мог бы сделать это
Вот пример кода
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
BufferedWriter console = new BufferedWriter(new OutputStreamWriter(System.out, "UTF-8"));
console.write("p1: Γίνεται πάντως\n");
console.flush();
System.out.println("p2: Γίνεται πάντως");
byte dataBytes[] = keyboard.readLine().getBytes(Charset.forName("UTF-8"));
System.out.println("p3: " + new String(dataBytes));
console.write("p4: " + new String(dataBytes, "UTF-8") + "\n");
console.flush();
Scanner scan = new Scanner(System.in, "UTF-8");
System.out.println("p5: " + (char) System.in.read());
System.out.println("p6: " + scan.nextLine());
System.out.println("p7: " + keyboard.readLine());
и выход на моей консоли:
p1: Γίνεται πάντως
p2: Γίνεται πάντως
Δέν
p3: ���
p4: ���
Δέν
p5: Ä
p6: ��
Δέν
p7: ���
мой IDE является Netbeans
Можете ли вы разместить свой рабочий код, пожалуйста? –
возможно [дубликат] (http://stackoverflow.com/questions/26077178/how-can-i-make-system-in-input-stream-read-utf-8-characters) –
Я сомневаюсь, что кодировка вашего ' System.in' является 'UTF-8'. –