木下 敏夫
kino****@tktoo*****
2007年 12月 2日 (日) 02:17:38 JST
木下です。 >>> 設定に $config['charset'] があるので、ハードコードせずに、それに合わせて >>> 出力した方がいいんじゃないかとも思いますが。 >> そうですね。 > > 日本語版CIでは、そうあるべきでしょうね。日本では、Shift_JISやEUC-JP > ができないと、それでCIをやめてしまう人がいるかもしれません。 実際には $config['charset'] の値を埋め込んで出力するよりも $config['charset'] に書かれている文字コードと views を記述している 文字コードに違いがあったときに文字化けの原因になるのが怖いかも。 ところで $configに定義された'charset'は system\libraries\Input.php の 856行目からの function _html_entity_decode_callback($match) { $CI =& get_instance(); $charset = $CI->config->item('charset'); return $this->_html_entity_decode($match[0], strtoupper($charset)); } で利用されているぐらいで出力系には無いですね。 URLエンコードされた入力を CodeIgniter が 内部で文字列を比較するときにこのcharsetが 重要になるのであって出力に影響を及ぼしていないようです。 従って、Application で views や controllers に書かれた日本語の サーバー上にある文字コードを記述するのが正解のように思えます。 現在の $config['charset'] は php.iniに記述する mbstring.internal_encoding 若しくは mbstring.http_input と同じようなもので 出力に対する mbstring.http_output とは違うというところでしょうか。 >>> ちなみに、私の言っているのは、HTML の meta http-equiv ではなく、HTTPヘッダ >>> の方です。 >> そうかなと思いながら・・・ >> >> ブラウザへの出力はsystem\codeigniter\CodeIgniter.php の下記のコードで行われているようなので >> $config['enable_hooks'] を TRUEにして >> system\application\config\hooks.php に >> function post_controller を作成してそこで行うとか。 >> >> $EXT->_call_hook('post_controller'); >> >> /* >> * ------------------------------------------------------ >> * Send the final rendered output to the browser >> * ------------------------------------------------------ >> */ >> >> if ($EXT->_call_hook('display_override') === FALSE) >> { >> $OUT->_display(); >> } >> >> > > 日本語版CI作成の際の1つのアイディアでしょうか。 > ありがとうございました。 > > そもそも、configでの$config['charset']がscaffolding以外の > ユーザ領域のviewsまで干渉すべきかどうかですよね。 > > viewsでは各個人が、 > <html> > <head> > <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> > <title></title> > </head> > > <body> > </body> > </html> > などとコーディングするはずです。 > $config['charset']はDB、クラスやヘルパーへの影響だと思っていましたが。 > > 他のフレームワークを調べた上で検討しましょうか。 > 特にCakePHPなどと比較すべきでしょうか。 > CakePHPはレイアウト機能(デコレータ?)が実装されていますよね。 > 敷居がいきなり高いのが特徴ですね。 > > //bossatama > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > -- 木下敏夫 http://www.tktools.jp/ mailto:kino****@tktoo*****