Java 无法使用StringBuilder.append(字符串)的特殊字符
我的部分代码:Java 无法使用StringBuilder.append(字符串)的特殊字符,java,string,special-characters,stringbuilder,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(); 为什么会这样?我应该使用其他东西从用户那里获取输入
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)打印它,它将正确地输出“åäö”;(其中某人是架线工)
编辑2:我正在使用NetBenas IDE 8.0
编辑3:问题似乎不是编码
Scanner sc = new Scanner(System.in,"utf-8");
仍然给出相同的结果。您使用的是什么IDE。尝试将控制台设置为打印UTF-8字符。
如果您使用的是Eclipse进入运行配置-->在公共选项卡下选择您的运行配置-->更改编码字符串在java中始终编码为UTF-16。正确设置控制台的编码。如果您正在使用某个IDE,那么只需通过谷歌搜索如何为控制台设置UTF-8编码是否查找编码?如果我只是将“åäö”附加到StringBuild并使用System.out.println(sb)打印,它将正确输出“åäö”;使用Eclipse:删除文件。再次复制同一文件。不要打开文件。右键单击文件-->属性。资源-->文本文件编码-->使用UTF-8检查“其他”。打开该文件。我正在使用NetBeans IDE 8.0(删除该文件,因为这是不正确的)。顺便说一句,我已经在Eclipse中运行了您的代码,它工作正常。正确地打印我已经运行了你的程序这里是它的输出:查看build.xml,似乎已经是这样了: