就这个问题,我在baidu,google上搜了一下,最终的答案几乎都是一样的.转载如下:
jsp 页面用下面3句语句来保证是gbk 编码
<%@ page session="true" %>
<%@ page contentType="text/html;charset=gbk" %>
<%@ page pageEncoding="gbk"%>
<%request.setCharacterEncoding("gbk");%>
数据库连接用如下语句
String sConnStr ="jdbc:mysql://localhost:3306/test?user=michael&password=123456&useUnicode=true&characterEncoding=gbk" ;
并且在mysql的my.ini的内容如下
basedir=D:/mysql
#bind-address=127.0.0.1
datadir=D:/mysql-data/data
default_character_set=gbk
#language=D:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=D:/mysql/bin/mysqld-nt.exe
user=michael
password=123
[client]
default_character_set=gbk
读jsp页面之间传递的参数在页面显示正常
在dos命令行下插入数据后,显示也正常
其中一条插入语句如下:
<jsp:useBean id="reg" scope="page" class="test.chatreg" />
String strSQL="insert into chatreg(username , password , email ,homepage )
values('" + regName + "', '" + regPassword +"' , '" + regEmail + "' , '" + regHomepage + "') ";
reg.executeQuery(strSQL);
我试着改了一下,结果中文问题解决了,可以在mysql数据库中插入中文了,个人体会:
最重要的是要 整个数据库的编码 和 数据库中表的编码 和 jsp页面的编码方式 要一样的
这样就不需要转换编码了,常用的有编码(对于中文),gb2312(字符少),gbk(字符多),utf-8......................................................
还有
<%@ page contentType="text/html;charset=gbk" %> 这句话每个.jsp文件中一定要一模一样,否则也会出错的~!
补充:这仅仅是解决jsp文件插入mysql乱码的问题的。。。。如果有用servlet的话。。。那就要另当别论了。。。