URL重新编码,URL重新编码有哪个方法
我来教你如何将URL进行编码和解码
URL编码解码,又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是'20',那么urlencode编码结果是:%20
1 为什么要URL编码
在因特网上传送URL,只能采用ASCII字符集,也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,即只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'()[不包括双引号]、以及某些保留字(空格转换为+),才可以不经过编码直接用于URL。这意味着如果URL中有汉字,就必须编码后使用。 但是麻烦的是 标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。 这导致"URL编码"成为了一个混乱的领域。
2 如何URL编码解码
「URL编码解码工具? 」可以对任意URL进行编码和解码操作,支持utf-8编码,URL编码是一种 浏览器 用来打包表单输入的格式。主要是用于将含有中文字符的URL转换成易于传播的编码,可以用于将网址进行重新编码,从而可以在一些禁止发链接的论坛上插入网址。
相信当各位使用这款工具之后,一定会成为你的好帮手。
jsp如何重写url编码
你说的问题是密文提交,form 的action中 用post方式提交就可以了。
IE浏览器兼容之URL编码
问题场景:文件上传,在谷歌里可以正常操作,IE浏览器操作出错,服务请求报错。HTTP 400 错误 - 请求无效 (Bad request)
问题分析:对比两个请求可以发现,二者的请求URL不一致。jsp通过url请求传递参数给后端,但是url的格式不对会造成请求失败。这种url的问题常发生在在IE浏览器中,其他浏览器火狐、chrome等不会有问题。因为谷歌中会自动给空格和一些特殊字符编码,而IE没有这一步。
解决办法:手动给url编码。在文件upload的方法里对url进行两次编码
encodeURI(encodeURI(url))
以上问题涉及的知识:
1、http请求过程:
浏览器把URL(以及post提交的内容)经过编码后发送给服务器。
?服务器将对内容解码,进行处理,再把结果编码返回给浏览器。
?浏览器按照指定的编码显示该网页。
字符串编码和解码时涉及到的字符集,如ISO8859-1、GBK、UTF-8、UNICODE。
2、URL编码
(1)URL编码特点:
由于 URL 常常会包含 ASCII 集合之外的字符,URL 必须转换为有效的 ASCII 格式。
URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。
URL 不能包含空格。URL 编码通常使用 + 来替换空格。
(2)URL编码方法
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。escape()不对"+"编码 主要用于汉字编码,现在已经不提倡使用。
encodeURI()是Javascript中真正用来对URL编码的函数。编码整个url地址,但对特殊含义的符号"; / ? : @ = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。
encodeURIComponent() 能编码"; / ? : @ = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。假如要传递带符号的网址,所以用encodeURIComponent()
原博文: IE浏览器兼容之URL编码
url重写属性在那
在应用程序的所有页面中。URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。使用URL重写,是在应用程序的所有页面中,对所有的URL编码,包括所有的超链接和表单的action属性值。