编码解码

编码解码

* 编码

https://blog.csdn.net/u012252959/article/details/49025225

1. 种类

  发明:美国等国家发明,标准码 iso-8859-1,编码单单字节编码,支持欧洲语言

  演变:机器不认识中文,国际码 gbk 简称  gb2312  【GBK汉子国标扩展码,采用gb2312的所有汉字及编码还涵盖了Unicode中的汉字】

  后来:阿拉伯语、日语、韩语等,统一编码UniCode

 

2. URL和URI

  URL 统一资源定位符,地址栏中就是url,如 http://www.baidu.com/question/01.html

  URI  统一资源标识符,从虚拟路径开始, 如 /question/01.html

  问题: [字母:a-z A-Z , 数字:0-9, 特殊符号:,$-_.+!*'()  ] 不用进行编码可直接用于url。 意味着url不能直接使用中文,http://www.aβγ.com 等,那么RFC 1738没有规定具体的编码方法,而是直接交给应用程序(浏览器)

         自己解决,这样就导致了“url乱码”

 

  结论: 网址路径包含汉字 (http://zh.wikipedia.org/wiki/春节):采用 utf-8 编码 ,变为 http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82

      查询字符串中包含汉字 (http://www.baidu.com/s?wd=春节): 采用操作系统默认编码

      get/post请求:由网页的编码决定<meta http-equiv="Content-Type" content="text/html;charset=xxxx">

      

  解决方法:先对url编码,提交服务器。

3.编码解码

3.1 escape()编码

     被编码后都变为unicode字符

     在/u0000 ~ /u00ff直接转换,escape()不对【+】进行编码(因为空格被转换为+字符), 解码unescape()  ,比较古老

javascript: escape("春节"); //"%u6625%u8282"

 

3.2 encodeURI()

  - js中真正对url编码的函数。

  - 对整个url编码,不对【; / ? : @ & = + $ , #】编码。

  - 编码后输出符号为 utf-8 形式,并且每个字节前面加了%

javascript: encodeURI("春节"); //"%E6%98%A5%E8%8A%82" 
decodeURI("%E6%98%A5%E8%8A%82");

 

3.3  encodeURIComponent()

  - 对url的组成部分编码,不是整个url

  - encodeURI()不对【; / ? : @ & = + $ , #】编码,但是在encodeURIComponent() 中都会被编码

  - 解码 decodeURIComponent()

encodeURIComponent("mail@example.com");//"mail%40example.com"
encodeURI("mail@example.com"); //"mail@example.com"
decodeURIComponent("mail%40example.com"); //"mail@example.com"

 

 

4. ASCLL码

 

posted on 2018-08-03 11:10 莫伊筱筱 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值