在Java中,如果我使用OutputStreamWriter
字符集创建UTF-16
,Java是否规定了默认字节序(UTF-16BE
或UTF-16LE
),或者是默认依赖于底层操作系统。
注意:我看到其他人声称默认值为UTF-16BE
,引用Charset
API documentation,但我对所述文档的解释是,它适用于UTF-16输入流的解释,而不是BOM,,并且没有说明在没有指定字节序的情况下使用UTF-16 。OutputStreamWriter
所需的行为(如果有的话)
答案 0 :(得分:1)
doc指定使用UTF-16:
解码时,UTF-16字符集解释输入流开头的字节顺序标记,以指示流的字节顺序,但如果没有字节顺序标记则默认为big-endian; 编码时,它使用big-endian字节顺序并写入一个big-endian字节顺序标记。