gal*_*han 7 javascript unicode utf-8
我有一个UTF-8编码的字符串来自ajax响应,我希望得到该字符串的子字符串到第一个逗号.对于字符串"??????, ???"它将是"??????".
这会起作用而不会陷入"多字节"问题吗?
var i = text.indexOf(',');
if (i != -1) text = text.substr(0, i);
Run Code Online (Sandbox Code Playgroud)
或者它更好用split吗?
Javascript按字符处理字符串,而不是按字节处理.
因此,是的,从编码/字符串处理的角度来看,这很好.
您可以将Javascript中的字符串视为没有任何特定编码,而是将其作为字符串.
> "??".substr(1)
"?"
Run Code Online (Sandbox Code Playgroud)
注意,以上只是简化.正如评论中指出的那样,Javascript将字符串视为16位代码点.这使您可以"按字符"处理大多数常见字符的字符串,但对于以UTF-16编码超过2个字节的字符或由多个代码点组成的字符,此抽象会中断.