Ross Wan's World!

Python, Ajax, PHP and Linux.

cakePHP: 中文乱码问题

Posted by Ross Wan 于 2009/02/20

在默认的配置下,cakePHP 存取的中文字符可以在网页上正常显示,但是在 phpMyadmin 下中文会显示为乱码,已经将数据库、所有的表都设置为 UTF-8,一样无效。

想起平时在 PHP 里处理 MySQL 中文存取的方法,就是在数据库操作前执行一句:

mysql_->query('SET NAME "UTF8");
于是在自己的 controller 里添加上这一句,果然中文在 phpMyAdmin 里显示正常。但取出数据时显示乱码。看来得“修改” AppModel。在自己的 App 目录下添加 app_model.php 文件,内容如下:
class AppModel extends Model {
    function __contruct() {
        parent::__construct();
        $this->query('SET NAMES "utf8"');
    }
}

这样,中文乱码消失了。但究竟 cakePHP 有没有更简洁的解决方法呢?于是查看 App 的数据库配置文件(config/database.php),发现有一个 encoding 选项,设置其为 ‘UTF8’,记住!不能是’UTF-8’,否则无效,问题果然解决。

That’s all, have fun :)

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

 
%d 博主赞过: