我有一个来自 ajax 响应的 UTF-8 编码字符串,我想获取该字符串的子字符串直到第一个逗号。对于字符串 "Привет, мир"
它将是 "Привет"
。
这会起作用并且不会遇到“多字节”问题吗?
var i = text.indexOf(',');
if (i != -1) text = text.substr(0, i);
还是使用split
更好?
最佳答案
Javascript 按字符处理字符串,而不是字节。
因此,是的,从编码/字符串处理的 Angular 来看这很好。
您可以将 Javascript 中的字符串视为没有任何特定编码,而是字符串。
> "漢字".substr(1)
"字"
请注意,以上只是一种简化。正如评论中指出的那样,Javascript 将字符串视为 16 位代码点。这使您能够“按字符”处理大多数常见字符的字符串,但对于以 UTF-16 编码超过 2 个字节的字符或由多个代码点组成的字符,这种抽象就失效了。
关于javascript - 在不弄乱 UTF-8 字符串的情况下获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738570/