on Sep 4th, 2007DreamHost 上 MySQL 的编码配置
想方设法的让编码都是 utf8 就好了。
修改你用户目录下的 .my.cnf 文件,在以下部分添加:
1 2 3 4 5 6 7 8 9 10 | [client] default-character-set = utf8 [mysqld] init-connect='SET NAMES utf8' default-storage-engine = INNODB character-set-server = utf8 collation-server = utf8_general_ci default-character-set = utf8 [mysql] default-character-set = utf8 |
然后
1 | mysql -u username -pPassword -h mysql_host_address |
进入 mysql 的命令行。
如果有不是 utf8 的,就
一下,再重复上面的命令,还有不是的,直接
1 |
我的 character_set_server 和 collation_server 这两个变量设置完成后,重新进入又变成 latin1 的啦,不知为何,不过不影响。 只要确保
1 2 3 | character_set_connection character_set_database character_set_results |
都是 utf8
1 2 | collation_connection collation_database |
都是 utf8_general_ci 就应该没啥问题了。
一键安装的 wordpress 导入数据在 phpMyAdmin 里面是乱码,其实根本原因还是数据库编码设置有问题,不过我真不知道还应该在哪里设置了。幸好有变通的方法,网上到处都有,就是在 wp-includes/wp-db.php 里面大约 61 行的地方加入
1 | $this->query("SET NAMES 'utf8'"); |
让所有编码和校验都为 utf8 就可以了。
如果还有乱码或别的问题,就在 phpMyAdmin 检查检查,手动修改吧。
更新(2008.03.23):升级 WordPress 到 2.3.3 后,有更优雅的乱码解决方案。
[...] 今天把 WordPress 一键升级到 2.3.3 之后,乱码又出现了,倒是已经见怪不怪,每次升都会遇到,解决办法也简单。在正确配置 mysql 的编码以后,修改 wp-db.php 这个文件也就可以了。但是今天,却不管用了。 [...]
[...] django sync 数据库之前,检查数据库编码是否 utf-8 友好的,如果不是,改之,然后再 sync,这样就不用为编码的事情发愁了。方法可以参考我的:DreamHost 上 MySQL 的编码配置。 [...]