Mat*_*tty 15 javascript unicode normalization unicode-normalization
我的印象是JavaScript解释器假定它正在解释的源代码已经被规范化了.什么,正常化?它不能是文本编辑器,否则源的明文表示会改变.是否有一些"预处理器"可以进行规范化?
bob*_*nce 16
不,根据ECMAScript 5,没有自动使用或甚至可用于JavaScript的Unicode规范化功能.所有字符都保持不变,因为它们的原始代码点可能是非正常形式.
例如尝试:
<script type="text/javascript">
    var a= 'café';          // caf\u00E9
    var b= 'cafe?';          // cafe\u0301
    alert(a+' '+a.length);  // café 4
    alert(b+' '+b.length);  // cafe? 5
    alert(a==b);            // false
</script>
更新: ECMAScript 6将为JavaScript字符串引入Unicode规范化.
Mat*_*ens 15
ECMAScript 6介绍了String.prototype.normalize()为您处理Unicode规范化.
unorm是这种方法的JavaScript polyfill,因此String.prototype.normalize()即使当前没有一个引擎本身支持它,你也可以使用它.
有关如何以及何时在JavaScript中使用Unicode规范化的更多信息,请参阅JavaScript具有Unicode问题 - 计算相似内容.
| 归档时间: | 
 | 
| 查看次数: | 11993 次 | 
| 最近记录: |