0

ノードバッファのドキュメントを詳しく調べていますが、の説明に頭を悩ませることはできませんbuffer.write()

具体的には、バッファの容量よりも大きい文字列を使用して書き込みを試行した場合の動作がわかりません。次の一節はそれ自体と矛盾しているようです。

バッファに文字列全体を収めるのに十分なスペースが含まれていなかった場合、バッファは文字列の一部を書き込みます。lengthのデフォルトはbuffer.length-offsetです。このメソッドは部分的な文字を書き込みません。

最初の文はそれができることを書くと主張し、最後の文はそれがオールオアナッシング操作であると述べています。

私は何かが足りないのですか?

4

1 に答える 1

1

特定のエンコーディング(UTF-8など)では、1つの文字を複数のバイトで表すことができます。

ドキュメントに「このメソッドは部分的な文字を書き込まない」と書かれている場合、文字に3バイトが必要であるが、バッファに2バイトしか残っていない場合、文字はまったく書き込まれません(最初の2バイト)

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

于 2012-12-11T19:15:52.533 に答える