一、中文乱码
IE高版本(应该是9以上,不确定),在get方式请求中中文传到后台容易出现乱码问题。解决方法如下:
1、第一种,换成post方式
如果可以得话换成post方式就可以。如果采用表单或者ajax,都可以把数据放到表单域或者ajax的data中,采用post请求。
注:经测试,把数据放入form表单中,使用jQuery的serialize()方法获取要传输的数据,通过ajax的GET方法也不会有乱码问题。
2、第二种,使用encodeURI()
如果必须使用get方式将参数直接拼接在url中,可以是encodeURI()方法对中文参数进行编码。重要:需要使用两次encodeURI()方法。
如:action="www.baidu.com?name=encodeURI(encodeURI('小明‘))"
而后台拿到数据后同样需要解码,java代码:
String name=request.getParameter("name");
name= URLDecoder.decode(name, "UTF-8");
这样就可以正常使用了,当然还是第一种简单省事。
二、特殊字符
现在分布式项目很多,不同子项目之间经常需要来回传递url,有时候url中还有+,空格,/,?,%,#,&,=这些特殊字符,传递过程中容易丢失。解决的办法就是使用编码代替
+ URL 中+号表示空格 %2B
空格URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D