中文乱码问题解决方法总结

1 jsp页面显示乱码

jsp页面首行的

1  <%@ page language="java" import="java.util.*" contentType="text/html;charset=gb18030"%>

中的字符集charset改为“GB18030”“GB2312”

2 jsp页面传输乱码

 在获取参数的jsp页面将获取到的值进行相应的转码

如:

1 String name=request.getParameter("name");
2 name=new String(name.getBytes("UTF-8859-1"),"GB18030");

前提是要传参的jsp页面和获取参数的页面的编码集保持一致。

3 jsp与数据库(mysql)进行数据处理时出现的中文乱码

   3.1 可以将MYSQL的一个文件my.ini中的default-character-set=latin1character-set-server=latin1

         对应修改为default-character-set=gbk character-set-server=gbk

    3.2 MYSQL文件下的data文件中的db.opt文件的内容修改为: 

         default-character-set=gbk

         default-collation=gbk_chinese_ci

       MYSQL----data----db.opt

    3.3将涉及到的数据库的基字符集更改为:gbk  数据库排序规则选择 gbk_chinese_ci

        即对应数据库--右键--更改数据库

    3.4在提交数据的jsp页面将字符集改为charset=gb2312,在获取数据的jsp页面将字符集改为charset=2312

        并在接受数据之前添加

       request.setCharacterEncoding("gbk");

       response.setContentType("text/html;charset=GB2312");

   3.5在对应的java文件的与数据库有关的相关方法中添加

    PreparedStatement pstm=conn.prepareStatement("SET NAMES GBK");

    pstm.executeUpdate();

通过以上几种方式基本可以将在开发过程中遇到的乱码问题进行解决,有些内容参考了其他人的文档,但这是自己在开发过程中遇到的问题的总结。

一分辛苦一分才
原文地址:https://www.cnblogs.com/JoanLin-workNotes/p/3751878.html