我在Linux服务器上使用JDK 1.7。我已经安装了apache 6.0.35并使用了下面的代码
Writer w = new OutputStreamWriter(os,"Unicode");
若要以unicode格式编写文件,请执行以下操作。
但是该文件是以unicode big endian格式生成的。如何选择不同的输出格式?
发布于 2013-01-03 10:51:36
‘'Unicode’不是一种单一的格式,但指定了像UTF-16 (大端和小端)和UTF-8这样的编码。
你可能想要一些特定的东西,比如UTF-16LE
而不是Unicode
。看看http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html中的列表
发布于 2013-01-03 10:52:37
如果您使用Unicode或UTF-16,则默认情况下它将是高字节顺序。如果不指定endianess,Java通常采用高字节顺序。如果您需要小端,则需要使用"UTF-16LE"
或StandardCharsets.UTF_16LE
指定它
来自java.nio.charset.StandardCharsets
public static final Charset UTF_16LE = Charset.forName("UTF-16LE");
发布于 2015-07-15 18:51:25
Java字符集名称" UTF-16“表示具有高字节顺序的UTF-16。试试下面这样的小endian格式:
BufferedWriter out = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(path),"UTF-16LE"));
https://stackoverflow.com/questions/14137037
复制