1) Thực tế mà nói: làm thế nào để nhân vật Mã hoá nơi làm việc, và làm thế nào bạn nên đối phó với họ:
Bất kỳ dòng nhân vật được đọc trong được mã hóa/giải mã. Java bao gồm các chi tiết mã hóa/giải mã như một phần của JDK: http://docs.oracle.com/javase/1.6/docs/guide/intl/encoding.doc.html. Ví dụ: UTF-8 issue in Java code.
2) Câu hỏi cụ thể của bạn: Ngôn ngữ JAVA đa nền tảng xử lý đầu vào bảng điều khiển có hệ điều hành cụ thể như thế nào?
Câu trả lời ngắn gọn: Mặc dù mã byte Java là nền tảng trung lập, JVM KHÔNG. Đó là, chức năng "System" "in/out/err" của java không được thực hiện đầy đủ trong java cũ thông thường!
Khi bạn RUN java, lớp "Hệ thống", tóm tắt khái niệm cơ bản của hệ thống mà JVM đang chạy, được tải. Trong thời gian này, đó là các luồng đầu vào/đầu ra/lỗi (tức là các đối tượng bạn đang truy cập khi bạn gõ System.in, System.out, System.err được thiết lập tại RUNTIME bởi ClassLoader chịu trách nhiệm, ... lớp tải java.
trong trường hợp của "hệ thống", ClassLoading là một nhiệm vụ phức tạp, như bạn có nghĩa, bởi vì lập Hệ thống lớp (giống như thiết lập java Runtime lớp) là một mức độ thấp hơn Vấn đề triển khai JVM là hệ điều hành cụ thể
Một lần nữa, chỉ cần rõ ràng: Mặc dù LANGUAGE Java là nền tảng độc lập, JVM cho nền tảng của bạn, do đó, không giống như ngôn ngữ lập trình Java, Môi trường hệ điều hành cụ thể tạo tài nguyên mà chúng tôi tham chiếu trong mã của chúng tôi cho chúng tôi khi chạy.
Để hiểu rõ hơn: Thanh toán mã nguồn thực sự cho lớp Hệ thống, nó rất dễ đọc và sẽ giúp bạn hiểu rõ hơn những gì đang diễn ra. Đặc biệt, nhìn vào phương pháp nullInputStream():
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Core/lang/java/lang/System.java.htm