Windows上的java println输出编码

标签 java windows character-encoding

这个问题来源于我问的一个问题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/

相关文章:

java - Android显示外语字符串

java - 如何使用Service、ServiceLocator、portType、porttypeProxy和stub来创建java客户端

java - 如何将 UTF-8 字符转换为 ISO Latin 1?

c++ - 将执行字符集字符串转换为UTF-8字符串

java - 为什么在检查数组字符串是否为空时会出现空指针异常?

c# - 帮助修复 C# "A ref or out argument must be an assignable"中的错误

windows - 如何在 Windows 中使用某些预定义端口从 cmd 运行 node.js 应用程序

c# - WPF绑定(bind)Canvas.Left/Canvas.Top到Point DependencyProperty,使用PointAnimation

php - 我需要在 HTML 和 PHP 中声明内容类型/字符集吗?

java - 为什么我的具有相同组 ID 的 Kafka 消费者不平衡?