我正尝试在像 हिन्दी 这样的 UTF-8 字符串上做一个 substr。
问题是它变得完全搞砸了=> 最后有一些奇怪的盒子(这里没有显示,虽然我复制粘贴了)(它有点像 [00 02]):हिन...
好的,这是使用 substr 函数后的样子:
alt text http://img27.imageshack.us/img27/765/capturexv.png
想知道是否有一些功能可以解决这个问题? 至少我想删除那个有趣的盒子。
感谢您的宝贵时间。
最佳答案
JavaScript 使用 UTF-16 对字符串进行编码,这意味着基本多语言平面之外的字符必须表示为代理项对。在这样的一对中间拆分一个字符串可能会解释您的结果。
据我了解wikipedia article ,您必须检查最后一个字符是否在 0xD800–0xDBFF 范围内,如果是,则将其删除或将以下字符(应在 0xDC00-0xDFFF 范围内)添加到子字符串。
关于Javascript utf-8 substr 和长度函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513102/