部分缓冲区写入

时间:2012-12-11 13:51:44

标签: node.js io

我正在仔细查看节点Buffer文档,我无法理解buffer.write()的解释。

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

  

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

第一句话声称它会写出它能做什么,而最后一句则说这是一个全有或全无的操作。

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

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

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

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