在node 14.3.0中运行以下代码
const data = 'ABCDE𠮟漢字でも大丈夫';
console.log(data);
console.log(data.split(''));
返回
ABCDE𠮟漢字でも大丈夫
[
'A', 'B', 'C', 'D',
'E', '�', '�', '漢',
'字', 'で', 'も', '大',
'丈', '夫'
]
为什么叱字不能正确分割?我已经测试了所有的 壮游,而这个字符是唯一产生这个结果的。
Javascript拆分,是在UTF-8被广泛采用之前就出现的,。 但是为了防止破坏现有的应用,我们决定不改变它基于UTF-16的实现。 幸运的是,最近的ES Specs实现了 Array.from
来处理这个问题。
所以在你的例子中,你可以使用 Array.from
或数组扩展语法。
另外RegEx也有unicode的u选项。 我也加入了这个选项...
例如
const data = 'ABCDE𠮟漢字でも大丈夫';
console.log([...data]);
console.log(data.match(/.{1}/ug));
使用"叱"而不是"𠮟",是同一个字。
const data = 'ABCDE叱漢字でも大丈夫';
console.log(data);
console.log(data.split(''));