Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用StringBuilder.append(字符串)的特殊字符_Java_String_Special Characters_Stringbuilder - Fatal编程技术网

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,似乎已经是这样了: