mysql 4.1.9 utf-8 字符集问题解决

为了使用全文检索,我把我的mysql升级到了 mysql 4.1.9。根据mysql文档,必须用utf8字符集。装完后,把我以前的表考过来时,用mysql client一搜索,出来的全是累世' ????'的乱码。但新建的表中新insert进去的字符,再select出来时是正常的。这是我以为我搞定了,我很高兴地下载了一个最新版的 mysql jdbc driver :jconnector-3.0.16,不幸发生了,出来的全是乱码。我用的测试表名是 ttt ,后来我打开 ttt.MYD 文件,发现保存汉字的字节流的确不是正确的utf-8编码的字节流。

最后我用jdbc插入汉字,用jdbc select 出来是正确的。但这是 mysql-client select出来是乱码。查看一下mysql client 命令行帮助
,发现其也有一个 --default-character-set的选项,运行 mysql --default-character-set=utf8 后还是不行,最后试 mysql --default-character-set=gbk才成功。看来mysql client 的字符集选项要设成和操作系统一致才行。

最后讲讲我在查找mysql字符集方面文档时获得的可能对你有益的信息

1)msyql 4.1 用 jconnector 3.0.16时(此版本以前的都是传统方式),不管jdbc url 后指定用什么字符集(useUnicode=true&characterEncoding=gbk),它都自动用 mysql server 设定的字符集。除非再加一个参数 useOldUTF8Behavior=true&useUnicode=true&characterEncoding=iso8859-1才能兼容以前的数据库表。
2)可以用 alter database test character set utf8 命令修改数据库的字符集(未验证),所以不同的数据库字符集可以不一样。有人说每个表都可以不一样,不过我没试过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值