调用 readable.setEncoding() 后 highWaterMark 不一致


¥highWaterMark discrepancy after calling readable.setEncoding()

使用 readable.setEncoding() 将改变 highWaterMark 在非对象模式下的运行方式。

¥The use of readable.setEncoding() will change the behavior of how the highWaterMark operates in non-object mode.

通常,当前缓冲区的大小是根据 highWaterMark 以字节为单位测量的。但是,在调用 setEncoding() 之后,比较函数将开始测量缓冲区的字符大小。

¥Typically, the size of the current buffer is measured against the highWaterMark in bytes. However, after setEncoding() is called, the comparison function will begin to measure the buffer's size in characters.

latin1ascii 的常见情况下,这不是问题。但建议在处理可能包含多字节字符的字符串时注意这种行为。

¥This is not a problem in common cases with latin1 or ascii. But it is advised to be mindful about this behavior when working with strings that could contain multi-byte characters.