URI Encode转码

1,038 阅读1分钟

encodeURI(UriString):'参数UriString必传'

可以把字符串作为URI组件进行编码;

返回值是:UriString副本, 其中某些字符串将被十六进制的转义序列化进行转换。

该方法不会转义的内容如下:

(1.)ASCII字母和数字。

(2.)~!@#$&*()_-+=:;',.?    备注:顺序根据键盘上的顺序



encodeURICompone(UriString):'参数UriString必传'

可以把字符串作为URI组件进行编码;

返回值是:UriString副本, 其中某些字符串将被十六进制的转义序列化进行转换。

该方法不会转义的内容如下:

(1.)ASCII字母和数字。

(2.)~!*()_-',     备注:顺序根据键盘上的顺序



二者的共同点与区别

1.无论是哪种转码, 都不会对ASCII字母和数字进行转码。 

2.无论是哪种转码, 都不会对~!*()_-',进行转码。

3.这两种编码形式对中的编码结果是一样的


为什么要进行uri转码

1.符合uri的规范, 在标准的uri规范中,中文字符以及其他字符是不允许出现在uri中的。

2.在不同浏览器中,可能并没有遵循uri的编码规范,导致中文会乱码。

3.get方式提交,浏览器会对url编码, 然后发送给服务器,可能会出现gbk对应着utf-8