关闭

web开发中URL编码

时间: 2019-03-31阅读: 1412标签: 

一、为什么要 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


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/2615

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

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

http返回状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别: 1xx:指示信息--表示请求已接收,继续处理;2xx:成功--表示请求已被成功接收、理解、接受

Http状态码整理

1开头-临时响应:100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

MySQL乱码的原因和设置UTF8数据格式

MySQL使用时,有一件很痛苦的事情肯定是结果乱码。将编码格式都设置为UTF8可以解决这个问题,我们今天来说下为什么要这么设置,以及怎么设置。在编程语言中,我们为了防止中文乱码,会使用unicode对中文字符做处理

字符集和编码

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

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

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

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

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

字符编码-ASCII,Unicode 和 UTF-8

我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同

常见Web报错code码

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

gbk是什么意思?

GBK全称《汉字内码扩展规范》,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK共收录21886个汉字和图形符号,其中汉字(包括部首和构件)21003个,图形符号883个。

点击更多...

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