web开发中URL编码

更新日期: 2019-03-31阅读: 3.3k标签: 

一、为什么要 urlencode()?

因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的。也就是说,url的参数传递的时候,需要遵循一定的url规范才能正确的传送。

通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。大部分需要编码的原因是由于有特殊字符(如@、#、&等)或者参数是中文形式。

Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。


二、javascript中编码的函数

escape() 方法:

(1)采用ISO Latin字符集对指定的字符串进行编码。 
(2)所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。 
(3)比如,空格符对应的编码是%20。 
(4)不会被此方法编码的字符: @ * / +  

encodeURI() 方法:

(1)把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 
(2)不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '  

encodeURIComponent() 方法:

(1)把URI字符串采用UTF-8编码格式转化成escape格式的字符串。 
(2)与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。 
(3)所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。 
(4)不会被此方法编码的字符:! * ( ) '  

重点:

(1)因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。 
(2)如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。 
(3)另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。  


三、php中关于编码的函数

主要是urlencode和urldecode

其他的参考:https://www.cnblogs.com/xuey/...


四、划重点

url的编码是为了让一些特殊字符以及中文能够通过编码转换成安全的字符传递,使之符合url标准。

大部分的js中编码函数多使用encodeURIComponent,因为该函数是编码范围最大的函数。但是还需要根据业务需求选择不同的编码函数。


五、参考链接

https://www.cnblogs.com/liuho...

来自:https://segmentfault.com/a/1190000018702652


链接: https://fly63.com/article/detial/2615

js之汉字与Unicode码的相互转化

js unicode是以十六进制代码外加开头\\u表示的字符串。本文将讲解通过js实现unicode转化为汉字的方法,实现汉字转Unicode码。

中文utf 8占几个byte——UTF-8中一个汉需要占用三个字节

中文汉字在utf-8中到底占几个字节,一般是3个字节,最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。

终于搞懂了回车与换行的区别

关于换行和回车其实平时我们不太在意,所以关于两者的区别也不太清楚,在平时开发时可能会遇到一些文件处理的问题,放到不同的操作系统上出现各种坑。那么回车和换行到底有哪些区别呢?

ascii码表/ascii编码_最全的ASCII码对照表

ASCII是基于拉丁字母的一套电脑编码系统。这篇文章主要介绍: 什么是ASCII、ASCII简介、ASCII码产生、ASCII码的算法、汉字编码、ASCII码图、最全的ASCII码对照表

js编码方式详解

escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者,今天我就在这里对这三个方法详细地分析与比较一下。

js实现unicode码字符串与utf8字节数据互转

js的string变量存储字符串使用的是unicode编码,要保存时必须选择其他编码后进行传输,比如转成utf-8,utf-32等。存储到数据库中为utf-8编码,可以正确支持中文、emoji表情、英文混合的字符串编码互转

Unicode字符集和UTF8编码编码的前世今生

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了

字符集和编码

字符集 Charset :是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码简称编码。

带你了解字符编码的前世今生

世界第一台计算机诞生了。计算机由硬件和系统软件组成,它最基本的功能就是存储、表示与处理信息。通俗地说,信息其实就是由各种各样的字符组成,比如英文字母、汉字以及其他国家的语言等。

常见Web报错code码

1xx-信息提示:这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。2xx-成功:这类状态代码表明服务器成功地接受了客户端请求。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!