以前是在tomcat的配置文件 server.xml中 加一句 URIEncoding="utf-8" ,一直也没见什么问题
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"/>
今天用ajax提交一个数据 却乱码, 解决如下:
function update(msg){
CreateRequest();
var url='briAction!updatePic?msg='+encodeURIComponent(msg);
xmlRequest.open("GET",url,true);
xmlRequest.onreadystatechange = goCallback ;
xmlRequest.send(null);
}
在构造url是用javascript自带的encodeURIComponent方法将参数进行编码
------------------------------------------------------------------------------------------------
第三个方法,也是最常用的方法。
页面直接提交msg=msg;
后台 转码
msg = New String(msg.getBytes("iso-8859-1"),"gbk")
为什么第三种最常用呢?
1.第一种方法需要改tomcat配置,这在有时候是做不到的。
2.有些文字转码转不过来,会出现乱码。
ajax返回中文乱码:
action 中写 response.setContentType("text/html; charset=GBK");