Kenji
kenji****@club*****
2007年 12月 2日 (日) 10:24:25 JST
Kenji です。 On Sun, 02 Dec 2007 02:17:38 +0900 木下 敏夫 <kino****@tktoo*****> wrote: > 木下です。 > > >>> 設定に $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 に書かれた日本語の > サーバー上にある文字コードを記述するのが正解のように思えます。 では、CI日本語版では、CIの実装になるべく合わせて、 * $config['charset'] は、出力系には使わない * <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> のようなmetaタグを view の <head> の直後に書く * Content-Typeヘッダについては、システムでは自動出力しない としましょうか。 > 現在の $config['charset'] は > php.iniに記述する > mbstring.internal_encoding > 若しくは > mbstring.http_input > と同じようなもので > > 出力に対する > mbstring.http_output > とは違うというところでしょうか。 // Kenji