UTF-8有时输出错误

时间:2014-12-08 10:04:23

标签: java utf-8 console

我在将输出字符串写入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输出代码运行:

??????áíéúäô?
ľščťžýáíéúäôň

但这只是我的机器上的情况,在任何其他这种恶劣的情况下!?

3 个答案:

答案 0 :(得分:0)

  1. 打开/运行cmd.exe
  2. 点击左上角的图标
  3. 选择属性
  4. 然后“字体”栏
  5. 选择“Lucida Console”并确定。
  6. 撰写chcp 1252chcp 65001
  7. 现在应该打印Unicode。

答案 1 :(得分:0)

您需要检查默认编码:

Charset.defaultCharset()

必须在程序启动时将默认编码指定为jvm的参数

java -Dfile.encoding=UTF-8 test.EncodingTest.Main

答案 2 :(得分:0)

最后我发现问题出在哪里。在Windows的非区域程序的选项语言的最后一个选项卡(管理)上的区域设置是美国(英语)。 在我改为斯洛伐克(斯洛伐克)之后,当然重新启动Win everithing工作正常: - )