1

我在 Linux 服务器上使用 JDK 1.7。我已经安装了 apache 6.0.35 并使用了代码

Writer w = new OutputStreamWriter(os,"Unicode");

以 unicode 格式写入文件。

但是该文件是以 unicode 大端格式生成的。如何选择不同的输出格式?

4

3 回答 3

3

'Unicode' 不是单一格式,而是指定编码,如 UTF-16(大端和小端)和 UTF-8。

您可能想要特定的东西,例如UTF-16LE而不是Unicode. 查看http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html中的列表

于 2013-01-03T10:51:35.623 回答
1

如果您使用 Unicode 或 UTF-16,则默认为大端。如果您不指定字节序,Java 假定大字节序为规则。如果你想要小端,你需要用"UTF-16LE"or指定它StandardCharsets.UTF_16LE

来自 java.nio.charset.StandardCharsets

public static final Charset UTF_16LE = Charset.forName("UTF-16LE");
于 2013-01-03T10:52:36.577 回答
0

Java 字符集名称“UTF-16”表示具有大端序的 UTF-16。试试这种小端格式:

BufferedWriter out = new BufferedWriter
    (new OutputStreamWriter(new FileOutputStream(path),"UTF-16LE"));
于 2015-07-15T18:51:25.200 回答