アットウィキロゴ

●ブラウザ→DBの文字設定

 …MYSQL4.1以降は、クライアントで使う文字コードを設定しないと日本語が文字化けしてしまう。この解決策としては、
   ・MYSQL本体に設定する
   ・PHPでDBに接続するたびに設定する
という2つの方法がある。

  • MYSQL本体に設定する場合
 C:\Program Files\xampp\myaql\bin\my.confの「[mysqld]」セクションに「init-connect = 'SET NAMES [エンコードタイプ]'」という記述を追加する。

C:\Program Files\xampp\myaql\bin\my.conf
  [mysqld]
  init-connect = 'SET NAMES [エンコードタイプ]'

 しかし、XAMPPのバージョンによってはこの方法に対応していない。そこで2つ目の方法。

  • PHPでDBに接続するたびに設定する
 CakePHPのAppModelをカスタマイズする。C:\Program Files\xampp\htdocs\blog\app_model.phpを開いて、AppModelのコンストラクタを記述する。

blog\app_model.php
  class AppModel extends Model{
     [[function]] __construct(){
        parent::__construct();
        if(!defind('GLOBAL_[エンコードタイプ]')){
           $this->[[query]]('SET NAMES [エンコードタイプ]');
           define('GLOBAL_[エンコードタイプ]', TRUE)
        }
     }
  }

●DB→ブラウザの文字設定

 …CakePHPではコンテンツの外側のレイアウトを持っているのは、blog\views\layouts\defsult,thtmlなので、先頭行に以下の行を追加する。

blog\views\layouts\defsult,thtml
  <?php print '<?xml version="1.0" encoding="[エンコードタイプ]" ?>' ?>

また、head内に以下の行を追加する。

  <META http-equiv="Content-Type" content="text/html; charaset=[エンコードタイプ]" />
最終更新:2007年04月25日 19:19