程序中乱码解决方案

来源:互联网 发布:淘宝达人账号如何注销 编辑:程序博客网 时间:2024/05/16 04:19

关于项目中中文乱码问题 1.乱码经常出现在什么位置?

-数据"传递"过程中的乱码

-数据"展示"过程中的乱码

-数据"保存"过程中的乱码

2.数据保存过程中的乱码? -最终保存到数据库中的时候,数据出现乱码。 -导致数据保存过程中的乱码包括以下两种情况。

1.-数据在保存之前本身就是乱码,保存到数据库表中的时候一定是乱码?

2.-数据保存之前不是乱码,但由于本身数据库不支持简体中文,保存之后出现乱码。

3.数据展示过程中的乱码?

      -最终显示到网页上的数据出现中文乱码。

      -经过Java程序之后,java程序负责向浏览器响应的时候,中文出现乱码,怎么解决?

     *设置响应的内容类型,以及对应的字符编码方式。
        response.setContextType("text/html;charset=utf-8");
       -没有经过执行java程序,直接访问Html界面,出现中文乱码,怎么解决?
        <meta content="text/html" ;charset="utf-8">    或者<meta charset="utf-8">
4.数据传递过程中的乱码。 -将数据从浏览器发送给服务器的时候,服务器接收到的数据是乱码。 解决数据传递过程中的乱码;
   *第一种解决方案:万能方式,既能够解决post请求乱码,又能解决get请求乱码。
      1.先将服务器中接收到的数据采用ISO-8859-1的方式解码,回归原始状态 再给定一种支持简体中文的编码方式

    String dname=  request.getParameter("dname"); //万能方式,post和get都可以使用

     byte[] bytes=dname.getBytes("ISO-8859-1");    //解码

     dname= new   String(bytes,"UTF-8");  //编码
     System.out.println(dname); }

    *第二种解决方案:【只支持post请求,因为这种】
        调用request的setCharacterEncoding方法,但是这种方式只适合post请求,只对请求体编码
        request.setCharacterEncoding("UTF-8");
        以上代码必须在从request中获取任何数据之前设置有效果。
        String dname=request.getParameter("dname");
        System.out.println(dname);
    *第三种方案:专门解决get请求的乱码问题,因为这种方式只对请求行编码
        修改CATALINA_HOME/conf/server.xml文件
        URIEncoding="UTF-8";
        
        
    

0 0