UCS-2 is also multibyte encoding (2-byte, fixed-length), and it is written in partially.
> buf = new Buffer(5);
<Buffer 90 77 28 00 90>
> buf.write('あいう', 'ucs2');
<Buffer 42 30 44 30 46>
The 5th byte (0x46) of buf is a part of 3rd char (う, U+3046).
And, write() should return 4 (2-chars * 2-bytes), not 6.
from @koichik. possibly V8 bug.
This is a Node's matter.
Fix Buffer.write() with UCS-2 should not be write partial char