URL编码是什么
URL编码是一种浏览器用来打包表单输入的格式。
浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况,在服务器端的表单输入格式样子像这样:
theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes
URL编码什么时候用呢
1.将它们以name/value参数编码作为URL的发给服务器时,然后你就可以获取了在session范围内
2.url里面有中文或者特殊字符比如中文的时候,就需要将编码转换
3.是让C和S更好的识别name和value用的,转义敏感字符和支持性不是很好的字符
4.防止sql注入
5.避免中文乱码
URL的编码和解码
方式一:JavaScript encodeURI() 函数,其定义和用法:
encodeURI() 函数通过将特定字符的每个实例替换为一个、两个、三或四转义序列来对统一资源标识符 (URI) 进行编码 (该字符的 UTF-8 编码仅为四转义序列)由两个 “代理” 字符组成)。
举例说明:URL:http://192.168.247.1/zwdtSW/swZhallItemAtt/declarationNotice.do?ST=REPORTCONDITIONS&ST_ITEM=‘中国’
encodeURI编码后:http://192.168.247.1/zwdtSW/swZhallItemAtt/declarationNotice.do?ST=REPORTCONDITIONS&ST_ITEM=’%E4%B8%AD%E5%9B%BD’
方式二:JavaScript encodeURIComponent() 函数,其定义和用法
作用:可把字符串作为URI 组件进行编码。其返回值URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
举例说明:URL:http://192.168.247.1/zwdtSW/swZhallItemAtt/declarationNotice.do?ST=REPORTCONDITIONS&ST_ITEM=d6c4216e-6d16-4606
经过encodeURIComponent编码后可得:
http%3A%2F%2F192.168.247.1%2FzwdtSW%2FswZhallItemAtt%2FdeclarationNotice.do%3FST%3DREPORTCONDITIONS%26ST_ITEM%3Dd6c4216e-6d16-4606(这个一般会在Java后台代码中使用到)