我在将输出字符串写入Windows控制台时出现问题,但这仅适用于我的计算机(Windows 8.1)我的朋友有Windows 7并且正常工作。这是测试代码:
package test;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
public class EncodingTest {
public static void main(String[] args) throws UnsupportedEncodingException {
//First try
System.out.println("ľščťžýáíéúäôň");
//Second try
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println("ľščťžýáíéúäôň");
}
}
在NetBeans中,可以使用精美的outpout工作。但是,如果我尝试从Windows CMD输出代码运行:
??????áíéúäô?
ľščťžýáíéúäôň
但这只是我的机器上的情况,在任何其他这种恶劣的情况下!?
答案 0 :(得分:0)
cmd.exe
chcp 1252
或chcp 65001
答案 1 :(得分:0)
您需要检查默认编码:
Charset.defaultCharset()
必须在程序启动时将默认编码指定为jvm的参数
java -Dfile.encoding=UTF-8 test.EncodingTest.Main
答案 2 :(得分:0)
最后我发现问题出在哪里。在Windows的非区域程序的选项语言的最后一个选项卡(管理)上的区域设置是美国(英语)。 在我改为斯洛伐克(斯洛伐克)之后,当然重新启动Win everithing工作正常: - )