我需要阅读用户的输入,我想支持非拉丁字母,例如Å,Ä和Ö.
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"), true);
out.println(keyboard.readLine());
out.println("Read with charset: " + Charset.defaultCharset().name());
Run Code Online (Sandbox Code Playgroud)
当我运行此代码并输入拉丁字母时,它按预期工作(我输入内容,按回车键,然后打印出我输入的内容).但如果我尝试å我得到这个:
å
?
Read with charset: UTF-8
Run Code Online (Sandbox Code Playgroud)
如果文本以非拉丁字母结尾,我必须按两次输入,然后它不会正确显示它们.我在Netbeans的控制台中尝试了这个,并且在Windows命令提示符下都没有给出预期的结果.
我找不到UTF-8的解决方案,而是选择了ISO-8859-1.它适用于我的Netbeans控制台(绝对应该是UTF-8)和CMD,当我第一次运行时chcp 28591,更改了字体(在我的情况下是必要的)并运行我的程序.
java ×1