木下 敏夫
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*****