JS编程建议——1:警惕Unicode乱码

建议1:警惕Unicode乱码
ECMA标准规定JavaScript语言基于Unicode标准进行开发,JavaScript内核完全采用UCS字符集进行编写,因此在JavaScript代码中每个字符都使用两个字节来表示,这意味着可以使用中文来命名变量或函数名。
虽然ECMAScript v3标准允许Unicode字符出现在JavaScript程序的任何地方,但是在v1和v2中,ECMA标准只允许Unicode字符出现在注释或引号包含的字符串直接量中,在其他地方必须使用ASCII字符集,在ECMAScript标准化之前,JavaScript通常是不支持Unicode编码的。考虑到JavaScript版本的兼容性及开发习惯,不建议使用汉字来命名变量或函数名。
由于JavaScript脚本一般都“寄宿”在网页中,并最终由浏览器来解析和执行,因此在考虑到JavaScript语言编码的同时,还要顾及嵌入页面的字符编码,以及浏览器支持的编码。不过现在的浏览器一般都支持不同类型的字符集,只需要考虑页面字符编码与JavaScript语言编码一致即可,否则就会出现乱码现象。
当初设计JavaScript时,预计最多会有 65 536个字符,从那以后慢慢增长到了一百万个字符。JavaScript字符是16位的,这足够覆盖原有的65 536个字符,剩下的百万字符中的每一个都可以用一对字符来表示。
Unicode把一对字符视为一个单一的字符,而JavaScript认为一对字符是两个不同的字符,这将会带来很多问题,考虑到代码的安全性,我们应该尽量使用基本字符进行编码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值