java web中文乱码处理笔记

1、发生中文乱码的状况有如下三种:html

1.表单form的两种提交出现中文乱码java

① get提交   ② post提交浏览器

2.超连接(本质是get提交)出现中文乱码服务器

三、sendRedirect(发生乱码)工具

 

2、乱码产生的缘由:post

  浏览器编码 utf-8 发送请求给服务器是会产生编码不一致的状况
因此在发送请求是先定义编码,就能很好的解决编码的问题测试

3、解决乱码的几种简单方式:编码

  post方法提交:解决方案以下: request.setCharacterEncoding(“utf-8”);spa

get方法使用该方法的时候仍是不能解决问题依然出现乱码,针对get提交所用的处理方法.net

封装成为一个工具类来处理:

public class Mytool{
    public static String getNewString(String str){
        String newString="";
        try{
        newString= new String(str.getBytes("iso-8859-1"), "utf-8");
        }catch(Exception e){
            e.printStackTrace();
        }
        return newString;
    }
}

调用工具类:

String u = request.getParameter("username");
Mytool.getnewString(u);

  超连接的提交方式和get的提交处理是同样的

4、兼容浏览器的版本信息问题,若是IE6或如下版本,第2、三种会出现乱码

  超连接乱码 和 sendRedirect乱码
String info=java.net.URLEncoder encode("你好吗.jpg",“utf-8”);
<a href="" + info>测试</a>
response.sendRedirect("servlet地址 ?username= " + info);

 

后记:

  在服务器端是中文,在response的时候,也要考虑浏览器是否显示正确response.setCharacterEncoding(“utf-8”);response.setContentType("text/html;charset=utf-8")

相关文章
相关标签/搜索