UTF8 String Length

PHPのstrlen($str)は、単純にByte数を返してくる。
JavaScriptのstr.lengthは、UTF-16でカウントする。Surrogate Pairは2文字としてカウントされる。

PHPのmb_strlen($str) == JavaScriptの[...str].length
PHPのmb_strlen($str)と、JavaScriptの[...str].lengthは、
Surrogate Pairは1文字としてカウントするが、
Double Surrogate Pairは2文字としてカウントする。

ちなみに、Array.from(str)は[...str].lengthと同じように動作する。

Surrogate Pair

abc😀いろは 16
abc😀いろは 7
😀 4
😀 1

Double Surrogate Pair

abc👏🏽いろは 20
abc👏🏽いろは 8
👏🏽 8
👏🏽 2