java 中文乱码的解决方法

1. 这方法行之有效,但是谨慎用,它会作用服务器。
超链接中带有的中文字符,<a class="add" href = "system/showDataAdd.action?title=题目&dataType=clientRank& rel=clientRankSet">添加</a>

这样如果不进行处理在后台得到的数据就会出现中文乱码的问题,由于超链接实际是用get方式进行传值的,这个问题的解决方法有:a. 在我们用的Tomcat的conf文件夹

中找到server.xml,在该文件中找到<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />,然后在这里面加

写URIEncoding="gb2312"即可解决。
2.在服务端用代码进行处理:例如title是要进行处理的中文字符:

public void setTitle(String title) {
        try {
            this.title = new String(title.getBytes("ISO-8859-1"), "gbk");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }   
    }

 

3. 用于ajax比较多
页面端发出的数据做一次encodeURI,服务器端使用 new String(old.getBytes("iso8859-1"),"utf-8")
    如:var url= "AJAXServer?name="+encodeURI($("#userName").val() ) ; // encodeURI处理中文乱码问题

4. 页面端发出的数据做两次encodeURI处理, 服务器端用URLDecoder.decode(old,"utf-8");

var url= "Users?name="+encodeURI(encodeURI($("#username").val() ))+"&password="+encodeURI(encodeURI($("#userpassword").val() ) )


+"&type="+encodeURI(encodeURI(input[i].value) );
 

 action类里面:

String string=URLDecoder.decode(cols[i], "utf-8");

 

 

posted @ 2013-07-13 01:26  子木聊出海  阅读(459)  评论(0编辑  收藏  举报