我想使用DataOutputStream#writeBytes,但是遇到了错误。 Java文档中writeBytes(String)
的描述:
我认为我遇到的问题是由于有关“丢弃高八位”的部分。这是什么意思,为什么会这样工作?
最佳答案
大多数西方程序员倾向于用ASCII来思考,其中一个字符等于一个字节,但是Java String
是16位Unicode。 writeBytes
只是写出低字节,对于ASCII/ISO-8859-1,它是C意义上的“字符”。
我想使用DataOutputStream#writeBytes,但是遇到了错误。 Java文档中writeBytes(String)
的描述:
我认为我遇到的问题是由于有关“丢弃高八位”的部分。这是什么意思,为什么会这样工作?
最佳答案
大多数西方程序员倾向于用ASCII来思考,其中一个字符等于一个字节,但是Java String
是16位Unicode。 writeBytes
只是写出低字节,对于ASCII/ISO-8859-1,它是C意义上的“字符”。