Java - 如何独立于平台输出

标签 java character-encoding cross-platform platform-independent

我想知道如何让我的代码在不同平台(至少 Windows 和 Linux)上产生相同的输出(UTF-8 或 UTF16)。
我认为可以设置应用程序使用的代码页,但我找不到设置代码页的信息。而且我不知道在使用 äöü 或其他非拉丁字符等特殊字符时设置代码页是否真的会产生相同的输出。

我想要一个无需为 java.exe 设置参数即可工作的解决方案。

编辑:
我的意思是输出到控制台。关于对其他输出媒体可能产生的影响的评论会很好。

最佳答案

字符集(或以前称为代码页)将字符序列转换为字节序列。

在 Java API 中,字符集作为 Charset 的子类实现。所有在字符和字节之间转换的 API 元素都可以提供要使用的字符集(许多元素还允许您传递字符集名称,因此您不必自己进行查找)。如果您不提供字符集,这些方法通常会回退到操作系统的默认编码。

例如,OutputStreamWriter具有一个采用字符集的构造函数:

try (Writer w = new OutputStreamWriter(System.out, "utf-8")) {
    w.write("Hello world");
}

关于Java - 如何独立于平台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172058/

相关文章:

html - 当找不到元标记时,我可以给 jsoup 一个后备字符编码吗?

character-encoding - 辛普森一家的 mojibake/krakozyabry 怎么说?

c++ - 如何在 Linux 中使用 COM ATL 项目?

google-play - 在多个平台上维护和组织购买

java - Apache POI 读取 xlsx NPE

java - 如何在javascript代码后使用PHP "include"函数?

java - 在 eclipse 中使用 -parameters 选项进行反射

javascript - 如何解决这个字符编码问题?

java - 簧片开关输入到 Android

.net - 在 .net 中获取系统特定的换行符