2007年

CakePHP MySQL で文字化けを防ぐ設定 このエントリーを含むはてなブックマーク

CakePHP, MySQL Add comments

MySQL で文字化けを防ぐためには
SET NAMES utf8
のように SET NAMES を実行するのが有効なのですが、これを app/config/database.php で設定する方法です。

'encoding'=>'文字コード'
をデータベースの設定項目に追加してやるだけです。

具体的には app/config/database.php が下記のようになります。

var $default = array(
    'driver' => 'mysql',
    'connect' => 'mysql_connect',
    'host' => 'localhost',
    'login' => 'user',
    'password' => 'password',
    'database' => 'dbname',
    'prefix' => '',
    'encoding' => 'utf8'
);


cake/libs/model/dbo/dbo_mysql.php
で下記のように実行されています。

function connect() {
    (略)
    if (isset($config['encoding']) && !empty($config['encoding'])) {
        $this->setEncoding($config['encoding']);
    }

    return $this->connected;
}
function setEncoding($enc) {
    return $this->_execute('SET NAMES ' . $enc) != false;
}

関連する投稿

3 Responses to “CakePHP MySQL で文字化けを防ぐ設定”

  1. CakePHP おぼえがき » Blog Archive » 4.コントローラを作る#4表示用のビューを作る Says:

    [...] を追加すればいいらしい…ということで末尾に追加したところ、きちんと表示されました 参考URL:http://www.syuhari.jp/blog/archives/141 [...]

  2. 北青山通信 – from aoyama» CakePHPでMySQLを使うと文字化けする件。単純なミス。 : Says:

    [...] 参考にしたサイトは、ここ。MySQLのマニュアルを読めよ。> 自分 ‘encoding’ => ‘utf8′ [...]

  3. CakePHP で MySQL で文字化けする場合の解決方法 | ウェブル Says:

    [...] しかし CakePHP ではもっと簡単に設定する方法があります。 CakePHP MySQL で文字化けを防ぐ設定 | Sun Limited Mt. [...]

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン