资讯专栏INFORMATION COLUMN

URI 上传中文符

qylost / 2520人阅读

摘要:除了以上字符,其他字符出现在之中都必须转义,规则是根据操作系统的默认编码,将每个字节转为百分号加上两个大写的十六进制字母。

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

其中,“春”转成了%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。

[引用地址](https://segmentfault.com/a/11...

HTMLDecode(text) { /*转义 

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; }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100728.html

相关文章

  • 深入分析 Java Web 中的中文编码问题

    摘要:文章首发地址深入分析中的中文编码问题背景编码问题一直困扰着程序开发人员,尤其是在中更加明显,因为是跨平台的语言,在不同平台的编码之间的切换较多。 文章首发地址:深入分析 Java Web 中的中文编码问题 背景: 编码问题一直困扰着程序开发人员,尤其是在 Java 中更加明显,因为 Java 是跨平台的语言,在不同平台的编码之间的切换较多。接下来将介绍 Java 编码问题出现的根本原...

    jsyzchen 评论0 收藏0
  • Python3网络爬虫实战---15、爬虫基础:HTTP基本原理

    摘要:上一篇文章网络爬虫实战部署相关库的安装下一篇文章网络爬虫实战网页基础在写爬虫之前,还是需要了解一些爬虫的基础知识,如原理网页的基础知识爬虫的基本原理基本原理等。由万维网协会和工作小组共同合作制定的规范,目前广泛使用的是版本。 上一篇文章:Python3网络爬虫实战---14、部署相关库的安装:Scrapyrt、Gerapy下一篇文章:Python3网络爬虫实战---16、Web网页基础...

    codeGoogle 评论0 收藏0
  • JavaScript中几个重要的知识点(3) ---- Ajax

    摘要:与响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。 JavaScript中几个最重要的大知识点 面向对象 DOM事件 异步交互ajax AJAX AJAX是异步的javascript和xml(Asynchronous Javascript And XML)的缩写,用于网页局部刷新,提升用户浏览体验 通常前端程序员关于AJAX的掌握仅仅停留在会用AJAX发送...

    starsfun 评论0 收藏0
  • HTTP 学习-踩坑记_06

    摘要:无状态是指协议对于事务处理没有记忆能力。允许请求服务器回显其收到的请求信息,该方法主要用于请求的测试或诊断。服务器成功处理了部分请求状态码状态码英文名称中文描述多种选择。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 HTTP 学习 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:Wor...

    Ashin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<