日期:2014-05-18  浏览次数:20646 次

关于向MySQL插入中文问题。
我做了一套程序。jsp+Servlet+javabean
本来用的是Access数据库。
现在需要改为MySQL数据库。

在网上申请了一个免费的MySQL,表已经建立完毕。
表的字段编码都是gb2312_chinese_ci,在PhpMyAdmin里插入测试数据,在程序前台显示中文正常。
测试后台的时候,插入中文数据,前台在输出就成????了。
我又在MySQL服务器上运行了
ALTER   DATABASE   `lzilong`   DEFAULT   CHARACTER   SET   gb2312   COLLATE   gb2312_chinese_ci

还是不可以。
我已经在Servlet里设置了编码
request.setCharacterEncoding( "gb2312 ");
response.setContentType( "text/html;charset=gb2312 ");

请问有什么办法?
有朋友告诉我插入的时候转换为   ISO-8859-1
输出的时候在从ISO-8859-1转为gb2312

如果这样的话我要从新整理所有的后台代码。

有没有有效的办法?别告诉我换数据库就可以。
100分全送了

------解决方案--------------------
关注ING
------解决方案--------------------
没人回答吗??在线等。。。
------解决方案--------------------
试过这样,在mysql目录下建立一个my.ini
[WinMySQLAdmin]
Server=d:/mysql/bin/mysqld-nt.exe

[mysqld]
basedir=d:/mysql
datadir=d:/mysql/data
default-character-set=gbk

[client]
default-character-set=gbk

------解决方案--------------------
楼上。。
谢谢你先。
我的数据库是在服务器上的通过PhpMyAdmin管理的。Linux系统。你让我怎么在mysql下建立一个my.ini???
------解决方案--------------------
在把中文扔到数据库里以前先确认在后面打出来时是不是问号,一般进去之前就乱码了,你看看你数据库里记录是不是乱的?


通过以下方法转码

String temp_p=request.getParameter( "userName ");
byte[] temp_t=temp_p.getBytes ( "ISO8859-1 ");
String userName=new String(temp_t, "gb2312 ");