本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9691691
建立时间:2004年12月20日




[数据库]Mysql与java的中文问题
原创空间,  软件技术

邢红瑞 发表于 2005/3/2 14:00:53

Mysql 4.0之前用缺省字符集latin1,连接加useUnicode=true&characterEncoding=GBK可以了,升级到4.1,mysql字符集要设成utf8,可以在安装时设置,也可以在my.ini里改(需要重新启动mysql)#必须在[mysqld]这段[client] default-character-set=gbk [mysqld] default-character-set=gbk skip-character-set-client-handshake skip-character-set-client-handshake 是由于 4.1 的 BUG 引入的设置,设置后重启server,用mysqladmin variables命令检查。mysql 3.1.6以后jdbc驱动连接无需加characterEncoding,会自动检测。实际上server端字符集不是utf8的话,加了也没用(jdbc:mysql://localhost/test&characterEncoding=UTF-8或者GBK)可能还会报错;是utf8的话,加不加都行,4.1以上版本还可以单独指定表的字符集。 如果你已经创建了数据库,并且是latin1编码的,还需要修改具体数据库和表的charset修改数据库的字符集: ALTER DATABASE `dbname` CHARACTER SET utf8  COLLATE utf8_general_ci; 修改具体表的字符集:  ALTER TABLE `tablename`CHARACTER SET utf8  COLLATE utf8_general_ci; 在建表时指定字符集: DROP TABLE IF EXISTS `area`;CREATE TABLE `area` (  `code` varchar(4) NOT NULL default '',  `name` varchar(10) NOT NULL default '',  PRIMARY KEY  (`code`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 其实有更简单的办法,在进行查询前,只要执行SET character_set_results = NULL就可以。而且这是不管是转换了的还是没转换的字段都不会出现乱码。而转换了的字段可以正常的对中文进行排序。


阅读全文(5956) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144752900 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号