在Java中,如果我使用OutputStreamWriter的字符集创建UTF-16,则Java是否规定了默认的字节序(UTF-16BEUTF-16LE),或者默认值取决于底层操作系统。

注意:我已经看到其他人声称默认值为UTF-16BE,并引用了Charset API documentation,但是我对上述文档的解释是,它适用于对没有BOM的UTF-16输入流的解释,并且对在没有指定字节序的情况下使用UTF-16的OutputStreamWriter的必需行为(如果有)。

最佳答案

该文档指定使用UTF-16:


解码时,UTF-16字符集将解释输入流开头的字节顺序标记以指示流的字节顺序,但是如果没有字节顺序标记,则默认为big-endian;编码时,它使用big-endian字节顺序并写入一个big-endian字节顺序标记。

09-10 02:18
查看更多