2013-04-17 36 views
5

Tôi đã tạo một Scanner được nhập từ System.in để tôi có thể nhận dữ liệu nhập từ bảng điều khiển.Lấy giá trị unicode từ System.in

Scanner scanner = new Scanner(System.in, "UTF-8"); 

Khi tôi làm

String s = scanner.next(); 

và sau đó nhập Слово דבר trong giao diện điều khiển, giá trị của chuỗi trở nên ???? ???.

Bảng điều khiển có thể hiển thị các ký tự Unicode, nhưng tại sao tôi không thể đọc chúng?

Trả lời

2

Không an toàn để giả định System.in được mã hóa UTF-8. Xem this question để biết cách giải quyết.

1

Điều này là do System.in trả về văn bản trong mã hóa mặc định (mã hóa mặc định của bạn rõ ràng không phải là UTF-8). Điều này sẽ làm việc OK

Scanner sc = new Scanner(System.in); 
String s = sc.next(); 
System.out.println(s); 

Và bạn có thể đọc mã hóa mặc định của bạn từ Java

System.out.println(System.getProperty("file.encoding")); 
Các vấn đề liên quan