关于向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 ");