最近在弄JABBERD2.0和MIRANDA,JABBERD2选择了用MYSQL4.1做数据库,出现了MIRANDA中中文乱码的问题。开始是按照网上说的在MYSQL的my.ini里把 default-character-set =…… 改为default-character-set=utf8。结果在MYSQL把一些字段改为中文的可以正常显示,可是在MIRANDA里却不能正常显示;反之在MIRANDA里把群组名改为中文的,在MYSQL里就不能显示正常了。并且有可能会拿不到群组里的联系人。
网上找资料,看到这个:解决PHP存取MySQL 4.1乱码问题 :
从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章"Character Set Support"后终于找到了解决方法并测试通过。
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW