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