把汉字存入到MYSQL的表中,但是显示出来乱码。求助。

carfi 2003-05-07 02:26:02
我用程序把文本信息(中文)从一个ODBC数据源中取出并存入String中,再插入到MYSQL的表中,可是插进去的都是问号。但在程序中打印出这些String能正确显示汉字。我连接时已经把useUnicode设成true而且用EMS MYSQL MANAGER插入的汉字就可以正确显示。为什么呢?
怎么搞法?
谢谢!
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
carfi 2003-05-07
  • 打赏
  • 举报
回复
谢谢!
Philzzf 2003-05-07
  • 打赏
  • 举报
回复
你可以看看我这个得分的例子
http://expert.csdn.net/Expert/topic/1529/1529097.xml?temp=.9971582

我简单总结一下:
数据库存储最好用8859_1的格式,
所以存入数据库的时候进行一下编码转换,但我们通常的显示格式为GB2312或GBK,所以取出来的时候再转一次

例如:

存入数据库时用:
把数据转成8859_1的格式
name=new String(name.getBytes("gb2312"),"8859_1");
content=new String(content.getBytes("gb2312"),"8859_1");

insert into (name,content)values(?,?).......

从数据库取的时候用:
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/gfqqqqpe?user=gfqqqqpe_f&password=aaaaa&useUnicode=true;characterEncoding=8859_1");
从数据库取的时候指定编码方式为“8859_1”,
然后显示的时候进行转换:
name=new String(name.getBytes("8859_1"),"gb2312");
这种方法在MYSQL上通用
carfi 2003-05-07
  • 打赏
  • 举报
回复
能不能告诉我具体怎么做?
我试过了几种方法设置了,但是没用。
laoer 2003-05-07
  • 打赏
  • 举报
回复
如果你插入是GB的编码,那么数据库的Unicode也要设为gb(GBK或GB2312)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧