我的部分代码:
Scanner in = new Scanner(System.in);
String s = in.nextLine();
StringBuilder sb = new StringBuilder(s.length());
sb.append(s);
如果添加
System.out.println(sb);
在第5行,如果我在第4行输入特殊字符(åäö),它将输出::
String s = in.nextLine();
为什么会这样?我应该使用其他东西来获取用户的输入吗?
编辑:如果我只是将“åäö”附加到StringBuild并使用System.out.println(sb)打印它,它将正确地输出“åäö”; (其中sb是StringBuilder)。
编辑2:我使用的是NetBenas IDE 8.0
编辑3:问题似乎不是编码。
Scanner sc = new Scanner(System.in,"utf-8");
仍然给出相同的结果。
答案 0 :(得分:1)
您使用的是什么IDE。尝试将控制台设置为打印UTF-8字符。 如果您正在使用Eclipse,请参阅运行配置 - >选择运行配置 - >在Common选项卡下更改编码
答案 1 :(得分:0)
字符串在java中始终编码为UTF-16。正确设置控制台的编码。如果您正在使用某些IDE,那么只需谷歌如何设置控制台的UTF-8编码