http请求是以ISO-8859-1的编码来传送url的,(Tomcat 默认ISO-8859-1的编码来传送url)如果页面的content-type为utf-8,那么在发送请求时,会将字符转成utf-8后进行传送。
如:现在我的conten-type界面是GB18030 那么在发送请求时,会将字符转成utf-8后进行传送,在没有任何设置的情况下
String name =request.getParameter("clientName"); 会得到乱码:??±±??
解决方案:
方案一:就是将GB18030编码 转为ISO-8859-1 编码
-
String name =new String(request.getParameter("clientName").getBytes("ISO-8859-1"),"GB18030");
-
方案二:在tomcat server.xml 配置url 编码
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="GB18030" />