mysql 数据库编码 中文显示乱码问题
搞了一个星期这个mysql 数据库编码——中文显示乱码问题,头都要大了,环境都配了N的N次方次了,想找个地方钻进去的心都有了…… 不过,终于在同事的协助,群里人的帮助,朋友的引导下,终于,终于,于2008年7月31日,周四上午11点45分左右搞定了,感谢天,感谢地,感谢命运让我们相遇,自从有了你…… 我们在群里大声的高歌,庆祝…… 废话少说,关键技术请往下看: 1.my.ini中 这一句:default-character-set=ltain1
default-character-set=utf8 2. 把 phpmyadmin2.11.6 \ libraries \ select_lang.lib.php 这个文件 'zh-gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'), 改成: 'zh-gb2312-utf-8' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'), 'utf-8' => 'utf8', 改成:'utf-8' => 'latin1', 这个时候再导入数据库,但是一定要注意数据库本身是什么编码! 如果数据库本身是utf8-unicode-ci,那你在建立数据库和phpmyadmin的数据校对时都要用utf8-unicode-ci;如果数据库本身是utf8-general-ci,那你再建立数据路和phpmyadmin的数据校对时都要用utf8-general-ci。这点也很重要。 建立数据库所选的编码是为了和导入数据匹配,phpmyadmin的数据校对是为了在phpmyadmin中看数据时不出现乱码。 3. utf8_unicode_ci & utf8_general_ci 区别 对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。 utf8_general_ci也适用与德语和法语,除了‘ ’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确 |
评论