博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URI 上传中文符
阅读量:7014 次
发布时间:2019-06-28

本文共 1067 字,大约阅读时间需要 3 分钟。

除了以上字符,其他字符出现在URL之中都必须转义,规则是根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。比如,UTF-8的操作系统上,,汉字“春节”不是URL的合法字符,所以被浏览器自动转成。

其中,“春”转成了%E6%98%A5,“节”转成了%E8%8A%82。这是因为“春”和”节“的UTF-8编码分别是E6 98 A5和E8 8A 82,将每个字节前面加上百分号,就构成了URL编码。

encodeURI 方法的参数是一个字符串,代表整个URL。它会将元字符和语义字符之外的字符,都进行转义。encodeURIComponent只转除了语义字符之外的字符,元字符也会被转义。因此,它的参数通常是URL的路径或参数值,而不是整个URL。

decodeURI用于还原转义后的URL。它是encodeURI方法的逆运算。decodeURIComponent用于还原转义后的URL片段。它是encodeURIComponent方法的逆运算。

在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码,两位两位取出后进行解码,然后再传递给后端,然后由后端进行再次解码。

如果使用encodeURI()进行了一遍编码,传过去后,发现解码出现问题,需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文编码成%xy的格式,第二次是对%xy中的%进行编码%编码成%25。

[引用地址](

HTMLDecode(text) { /*转义 <p><b>123&456<*/    var temp = document.createElement("div");    temp.innerHTML = text;    var output = temp.innerText || temp.textContent;    temp = null;    return output;  }  HTMLEncode(html) { /**反转义 */    var temp = document.createElement("div");    (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);    var output = temp.innerHTML;    temp = null;    return output;  }

转载地址:http://iqqtl.baihongyu.com/

你可能感兴趣的文章
学习SpringMVC——从HelloWorld开始
查看>>
Say Hello to ConstraintLayout
查看>>
awk打印指定列以后的所有内容
查看>>
代码16
查看>>
用 kGDB 调试 Linux 内核
查看>>
ActiveMQ发布-订阅消息模式
查看>>
2017.3找工作面试记录-第一周(2)
查看>>
vuejs2.0子组件改变父组件的数据
查看>>
Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装
查看>>
【NIO】Java NIO之通道
查看>>
HDU 4287 Intelligent IME(map运用)
查看>>
[LeetCode] Subtree of Another Tree 另一个树的子树
查看>>
说说这些年做的云计算和大数据项目
查看>>
P1019 单词接龙
查看>>
linux下的开源移动图像监测程序--motion编译与配置【转】
查看>>
git的版本回退探索
查看>>
记一次docker问题定位(perf,iostat等性能分析)
查看>>
H3c 配置ssh acl
查看>>
【IntellJ IDEA】idea上 实现了Serializable接口,要自动生成serialVersionUID的方法
查看>>
帮助函数
查看>>