windows上的java println输出编码

windows上的java println输出编码,java,windows,character-encoding,Java,Windows,Character Encoding,这个问题源于我问的一个问题。有人建议这可能是一个Java问题,所以我发布了另一个问题 什么决定system.out.println命令的输出编码?基本上,我正在从命令提示符执行一个python程序,它生成一个运行java(stanford parser)的子进程,它接受以UTF-8编码的输入文档,以特定格式处理和打印我的输入。回到python程序,我无法用utf-8解码标准输出。这在OSX上有效,所以我怀疑这可能是一个控制台编码问题 我已尝试设置chcp 65001和更改字体类型,但这些都不起作

这个问题源于我问的一个问题。有人建议这可能是一个Java问题,所以我发布了另一个问题

什么决定system.out.println命令的输出编码?基本上,我正在从命令提示符执行一个python程序,它生成一个运行java(stanford parser)的子进程,它接受以UTF-8编码的输入文档,以特定格式处理和打印我的输入。回到python程序,我无法用utf-8解码标准输出。这在OSX上有效,所以我怀疑这可能是一个控制台编码问题

我已尝试设置chcp 65001和更改字体类型,但这些都不起作用。

它使用的是Windows上过时的“ANSI”编码。记录在案的改变方法是“通过操作系统”,尽管这是最远的。您也可以调用以提供自己的机制:

System.setOut(new PrintStream(System.out, true, "UTF-8"));

请参阅以获得更深入的信息。

您的意思是,在windows上,默认编码是ansi,而在Unix shell上,则是enc类型的任意编码。?那么,通过操作系统是什么意思呢?文档并没有明确说明应该如何更改编码,只是说明应该在虚拟机之外进行-这是一个实现细节,没有什么帮助。例如,在Linux上,它可能使用$LANG变量。据我所知,在Windows中没有记录在案的更改方法。Windows带来了很多遗产。您可以使用代码(见上文)或通过不支持的
-Dfile.encoding=UTF-8
系统属性更改标准输出编码。