1
调研条件
  1. 客户端:qq浏览器、firfox、chrome
  2. 测试用例

    • url中path带汉字
    • url中query带汉字
    • 页面中get请求或者post请求
    • 页面中meta元数据 charset="utf-8" 或者 charset="gb2312"
调研结果(ps: 比较片面,受浏览器种类和版本影响,结果可能不同,结果不代表绝对性,只是利用有效条件)
qq浏览器行为和chrome行为一致,会对中文进行编码,firfox不会
encodeURI和encodeURIComponent的重要性
因为各个浏览器的行为不一致,所以给开发人员带来困惑,需要一种通用的方法来避免掉多种适配的麻烦。所以encdoeURI和encodeURIComponent这两个标准就出现了,encodeURI现在已经用的少了,基本都用encodeURIComponent
encodeURI vs encodeURIComponent
不同点
encodeURI: 除掉特定字符不编码外(包括浏览器访问url里面的预留符号和其
他得一些符号), 这些不编码的符号是: A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ),其他字符都要编码
encodeURIComponent: 除特定字符编码外,其他字符都编
码(包括浏览器url里面的预留字符),这些不编码的符号是:A-Z a-z 0-9 - _ . ! ~ * ' ( )
相同点
都是采用的utf-8编码
例子
var test = 'http://www.test.com/例子'
encodeURI(test) //结果:"http://www.test.com/%E4%BE%8B%E5%AD%90"
encodeURIComponent(test) //结果: "http%3A%2F%2Fwww.test.com%2F%E4%BE%8B%E5%AD%90"


THZXQ
203 声望9 粉丝

前端工程师


« 上一篇
WebSocket使用
下一篇 »
sentry使用

引用和评论

0 条评论