这个问题来源于我问的一个问题here .有人建议这可能是 Java 问题,所以我发布了另一个问题。
什么决定了 system.out.println 命令的输出编码?基本上,我正在从命令提示符处执行一个 python 程序,它生成一个运行 java(stanford parser) 的子进程,它接收我的以 UTF-8 编码的输入文档,以特定格式处理和打印我的输入。回到 python 程序,我无法使用 utf-8 解码 stdout 的输出。这适用于 OSX,所以我怀疑它可能是控制台编码问题。
我已尝试设置 chcp 65001
并更改字体类型,但这些都不起作用。
最佳答案
它使用 default encoding在 Windows 上将是过时的“ANSI”编码。已记录的更改此设置的方法是“通过操作系统”,尽管这是目前为止。您也可以调用System.setOut提供你自己的机制:
System.setOut(new PrintStream(System.out, true, "UTF-8"));
参见 here更深入。
关于Windows上的java println输出编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29231397/