UDN-企业互联网技术人气社区

板块导航

浏览  : 975
回复  : 11

[原生js] JavaScript字符集编码与解码

[复制链接]
htmlman的头像 楼主
发表于 2017-2-10 10:56:15 | 显示全部楼层 |阅读模式
  一、字符集

  1)字符与字节(Character)

  字符是各种文字和符号的总称,包括乱码;一个字符对应1~n个字节,一字节对应8位,每位用0或1表示。

  2)字符集(Character Set)

  字符集是多个字符的集合,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、Unicode字符集等。

  3)字符集编码(Character Encoding)

  字符集编码就是将符号转换为计算机可读的二进制,解码就是把二进制转换为人类可读的符号。

  字符集大多对应一种编码方式(例如GBK对应GBK编码),但Unicode编码有多种,包括UTF-8、UTF-16、UTF-32和UTF-7。

  目前网页用的最多的就是“UTF-8”,UTF-8使用一至四个字节为每个字符编码,是ASCII的一个超集,所以现存的ASCII文本不需要转换

  二、浏览器进制

  1)HTML属性中使用十进制和十六进制

  十进制在HTML中可使用“8”,十六进制,则使用“Z”,比十进制多了个x,进制码中也多了a~f这6个字符来表示10~15。

  2)CSS属性中使用十进制和十六进制

  CSS兼容HTML的进制形式,除此之外,十六进制还可以使用“\6c”的形式来表示。

  3)JavaScript编码封装

  可以直接通过eval执行字符串八进制和十六进制两种编码方式,其中八进制用“\56”表示,十六进制用“\x5c”表示。

  如果代码中应用了汉字并且需要进行进制编码,那么只能进行十六进制Unicode编码,其表示形式为:“\u4ee3\u7801”。

  在“Web前端黑客技术揭秘 ”中经封装了两个方法来做编码和解码,主要用到了下面两个方法,具体代码可 查看此处

  核心代码是:“ str.charCodeAt(char).toString(进制) ”与“ String.fromCharCode(parseInt(code,进制)) ”

  charCodeAt()方法返回0到65535之间的整数,表示给定索引处的UTF-16代码单元
1.png

  静态String.fromCharCode() 方法返回使用指定的Unicode值序列创建的字符串。
2.png

  还可以通过一个在线网页进行编码解码“ MonyerJS ”。
1.png

  4)HTML自动解码机制

  例如在网页中输入16进制的“Hello”,自动就会解码为“hello”。
 
  还有一些比较熟知的空格“ ”也是这种机制。

  三、浏览器编码

  JavaScript中有三对可以对字符串编码解码的函数,分别是:

  escape /unescape、 encodeURI /decodeURI、 encodeURIComponent /decodeURIComponent。

  主要的区别还是不编码的字符个数。

  1)escape不编码的字符有69个
  1. *、+、-、.、/、@、_、0~9、a~z、A~Z而且escape对0~255以外的unicode值进行编码时输出%u****格式。
复制代码

  2)encodeURI不编码的字符有82个
  1. !、#、$、&、'、(、)、*、+、,、-、.、/、:、;、=、?、@、_、~、0~9、a~z、A~Z
复制代码

  3)encodeURIComponent不编码的字符有71个
  1. !、'、(、)、*、-、.、_、~、0~9、a~z、A~Z
复制代码

相关帖子

发表于 2017-2-10 10:56:45 | 显示全部楼层
js是要逆天的节奏js虽然不错,但是天生也是有缺陷,局限性。。。
使用道具 举报

回复

发表于 2017-2-11 00:42:37 来自手机 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部