[Codeigniter-users] 日本語版 Content-Type:ヘッダの出力について

Zurück zum Archiv-Index

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




Codeigniter-users メーリングリストの案内
Zurück zum Archiv-Index