中文乱码问题解决方法总结
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=latin1和character-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();
通过以上几种方式基本可以将在开发过程中遇到的乱码问题进行解决,有些内容参考了其他人的文档,但这是自己在开发过程中遇到的问题的总结。