小编Dan*_*ist的帖子

在UTF-8中从键盘读取

我需要阅读用户的输入,我想支持非拉丁字母,例如Å,Ä和Ö.

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

5
推荐指数
1
解决办法
1294
查看次数

标签 统计

java ×1