在JSP的输入框中写入中文,传给后台的时候,常常会出现乱码问题:
今天看了韩顺平老师的视频,对乱码问题有了初步的认识,又经过自己的实践,把总结写出来。
产生乱码的原因:java在网络上进行传输的时候,用的是iso-8859-1的编码形式进行传输。所以,在编码和解码(得到传递值)的时候,要对应起来。。
解决方法主要有三个:
1.重新转码new String(u.getBytes("iso-8859-1"),"gb2312");
2.使用过滤器来解决[不稳定]
3.通过配置server.xml文件[不太稳定]
例 :
String userName = requset.getParameter("userName");
userName = new String(userName.getBytes("iso-8859-1"),"gb2312");
但每次都这样转,还是太麻烦了,因此可以写一个工具类,提供这个将乱码转成gb2312.
public class Tools{
//提供一个方法,将乱码转化成gb2312
public static String getNewString(String input){
String result = "";
try{
result = new String(input.getBytes("iso-8859-1"),"gb2312");
}catch(Exception e){
e.printStackTrace();
}
return result;
}