0

我正在详细查看节点缓冲区文档,但我无法理解buffer.write().

具体来说,当使用大于缓冲区容量的字符串执行写入尝试时,我不明白行为是什么。以下段落似乎自相矛盾:

如果缓冲区没有足够的空间来容纳整个字符串,它将写入部分字符串。长度默认为 buffer.length - 偏移量。该方法不会写入部分字符。

第一句话声称它会写它可以写的东西,而最后一句话说这是一个全有或全无的操作。

我错过了什么吗?

4

1 回答 1

1

在某些编码(如 UTF-8)中,单个字符可以由多个字节表示。

当文档说“该方法不会写入部分字符”时,我认为他们的意思是,如果一个字符需要 3 个字节但缓冲区上只剩下 2 个字节,则根本不会写入该字符(而不是只写入前 2 个字节)

http://en.wikipedia.org/wiki/UTF-8

于 2012-12-11T19:15:52.533 回答