Just a quick note that may be helpful for some:
It seems to me that this function also modifies the HTTP Content-Type header that's sent to the client (at least in combination with the iconv_set_encoding() function).
If you specify an encoding ending with "//TRANSLIT" or "//IGNORE" (valid in iconv), it will still send the encoding name in the HTTP header. This makes it an invalid character set unfortunately.
For example:
<?php
iconv_set_encoding("internal_encoding","UTF-8");
iconv_set_encoding("output_encoding","ISO-8859-1//TRANSLIT");
ob_start("ob_iconv_handler");
?>
will send a Content-Type header of "ISO-8859-1//TRANSLIT".
ob_iconv_handler
(PHP 4 >= 4.0.5, PHP 5)
ob_iconv_handler — 出力バッファハンドラとして文字エンコーディングを変換する
説明
string ob_iconv_handler ( string contents, int status )internal_encoding でエンコードされた文字列を output_encodingに変換します。
internal_encoding および output_encoding は、 iconv_set_encoding() または設定ファイル php.ini で定義されている必要があります。
パラメータ
このハンドラのパラメータについての情報は ob_start() を参照ください。
返り値
このハンドラの返り値についての情報は ob_start() を参照ください。
例
例 890. ob_iconv_handler() の例
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // 出力バッファリングを開始
?>
参考
| iconv_get_encoding() |
| iconv_set_encoding() |
| 出力制御関数 (output control) |
ob_iconv_handler
st33mann at gmx dot n3t
05-Oct-2005 03:43
05-Oct-2005 03:43