总结一下以往做的java项目出现的各种中文乱码问题

来源:互联网 发布:cs软件下载 编辑:程序博客网 时间:2024/06/05 15:16
中文乱码问题
  首先看jsp页面的字符集是否设置为了UTF-8
a.form表单以get方式传入后台后,接收参数出现乱码,把method改为post方式
b.前台参数提交到后台,接收之后出现乱码,在接收的第一个参数前面添加 response.setCharacterEncoding("UTF-8");
c.在struts.xml文件中配置i18n常量<constant name="struts.i18n.encoding" value="UTF-8" />
d.创建Java类进行自定义转字符集,然后将此类配置到web.xml的filter中
e.在tomcat服务器下的server.xml文件中的<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />添加URIEncoding="UTF-8"
f.解决MySQL数据库中文问题主要在JDBC驱动的URL上,例如:jdbc:mysql://localhost/xxx?user=xxx&password=xxx&useUnicode=true&characterEncoding=UTF-8
g.js传值后台中文乱码解决
在“.jsp”页面中,需要通过js将值传递到后台,后台根据传递的值进行数据查询时,通过.jsp的js进行编码,后台java解码,可以解决
【.jsp】
var name = encodeURI(document.getElementById("name").value);
       name = encodeURI(name);  //需要通过两次编码
【java代码】
        name = URLDecoder.decode(name , "utf-8");
h.两个HTML页面之间传值时中文出现乱码,怎样解决???
可以在页面a用encodeURI 编码url  在b页面用decodeURI解码url
页面a
function test() {  
  var parm1=document.getElementById("test1").value;
  var parm2=document.getElementById("test2").value;
  var parm3=document.getElementById("test3").value;
  var myurl="b.html"+"?"+"parm1="+parm1+"&parm2="+parm2+"&parm3="+parm3;
    // encodeURI 编码
    window.location.assign(encodeURI(myurl));
  }            


页面b
function getvalue(){
//b.html?parm1=myimg1&parm2=myimg2 
//获得第一个属性 
//decodeURI 解码
var url=decodeURI(location.href);
var tmp1=url.split("?")[1]; 
var tmp2=tmp1.split("&")[0]; 
var tmp3=tmp2.split("=")[1]; 
var parm1=tmp3;
...
}
原创粉丝点击