不使用StringBuilder.append(String)的特殊字符

时间:2014-09-16 11:17:19

标签: java string special-characters stringbuilder

我的部分代码:

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");

仍然给出相同的结果。

2 个答案:

答案 0 :(得分:1)

您使用的是什么IDE。尝试将控制台设置为打印UTF-8字符。 如果您正在使用Eclipse,请参阅运行配置 - >选择运行配置 - >在Common选项卡下更改编码

答案 1 :(得分:0)

字符串在java中始终编码为UTF-16。正确设置控制台的编码。如果您正在使用某些IDE,那么只需谷歌如何设置控制台的UTF-8编码