本当は怖いUTF-16
$ irb
> "𠮷".encode("UTF-8").length
=> 1
> "𠮷".encode("UTF-16").length
=> 2
端末はUTF-8なんだけどnodeがUTF-16に変換してるのかしら
$ node
> "𠮷".length
2
@zundan JavaScriptの文字列はUTF-16です
@omasanori はい。素朴に、nodeはUTF-8の文字列(1文字だけれど)をわけのわからないバイト列として受け取ってそうだと想像したのですが、ちゃんとUTF-16として受け取っていました。