pat*_*rjk 25 javascript utf-16
我在某些地方读过JavaScript字符串是UTF-16,而在其他地方它们是UCS-2.我做了一些搜索,试图弄清楚差异,发现这个:
问:UCS-2和UTF-16有什么区别?
答:UCS-2是过时的术语,在代理代码点和UTF-16被添加到标准的2.0版之前,它指的是Unicode 1.1之前的Unicode实现.现在应该避免使用这个术语.
UCS-2没有定义不同的数据格式,因为UTF-16和UCS-2在数据交换方面是相同的.两者都是16位,并且具有完全相同的代码单元表示.
有时在过去,实现被标记为"UCS-2"以指示它不支持补充字符并且不将代理代码点对解释为字符.这样的实现不会处理补充字符的字符属性,代码点边界,校对等的处理.
通过:http://www.unicode.org/faq/utf_bom.html#utf16-11
所以我的问题是,是因为JavaScript字符串对象的方法和索引作用于16位数据而不是字符,这使得有些人认为它是UCS-2?如果是这样,围绕字符而不是16位数据块的JavaScript字符串对象是否会被视为UTF-16?或者还有其他我想念的东西?
编辑:根据要求,这里有一些来源说JavaScript字符串是UCS-2:
http://blog.mozilla.com/nnethercote/2011/07/01/faster-javascript-parsing/ http://terenceyim.wordpress.com/tag/ucs2/
编辑:对于任何可能遇到此问题的人,请务必查看此链接:
dgv*_*vid 18
严格来说,JavaScript,ECMAScript,早于Unicode 2.0,因此在某些情况下,您可能会发现对UCS-2的引用只是因为在编写引用时这是正确的.您能否指出我们将JavaScript作为"UCS-2"的特定引用?
ECMAScript版本3和5的规范至少都明确地将String声明为无符号16位整数的集合,并且如果这些整数值用于表示文本数据,则它们是UTF-16代码单元.请参阅ECMAScript语言规范的第8.4节.
编辑:我不再确定我的答案是完全正确的.请参阅上面提到的优秀文章,http://mathiasbynens.be/notes/javascript-encoding,实质上说,虽然JavaScript引擎可能在内部使用UTF-16,而大多数情况下,语言本身会有效地公开这些字符,就像他们是UCS-2.
| 归档时间: |
|
| 查看次数: |
10095 次 |
| 最近记录: |