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");