[PHP-dev 225] Re: [PATCH] improved multibyte patch for PHP 4.1.*
Masaki Fujimoto
php-dev@php.gr.jp
Thu, 24 Jan 2002 10:00:40 +0900
ふじもとです。
On Thu, 24 Jan 2002 01:27:05 +0900
Tomoyuki Asakawa <tom@asakawa.ne.jp> wrote:
-snip-
> > - どういう現象が発生するか
>
> 文字化けする、表示されない(ブラウザでソース表示してもでない)
>
> mbstring.http_outputを未定義にすることが、悪いのですが。
> 未定義ならPASSと同じ動作の方がいいのではないでしょうか
ありがとうございました。ようやく僕も状況を理解することが出来まして、こち
らでも再現しました。どうやらmbstring.http_outputのデフォルト値が
mbfl_no_encoding_invalidになっていて、しかもmb_output_handlerでは
mbfl_no_encoding_pass以外の時はconvertするようになっているからのようです
ね。
で、internal_encoding -> mbfl_no_encoding_invalidに変換(?)しようとしてお
かしなことになっているようです(未検証なのであくまで推測です)。
やはりあさかわさんのおっしゃるようにhttp_output未定義時はpassにするか、
http_outputがinvalidのときはmb_output_handlerの処理をpassと同様にするか、
もしくは両方の対応を採ったほうがいいとおもいます。
とはいっても僕はmbstringのkarmaを持っていないのでこの議論は他の開発者の
方にお任せします(と、逃げを打つ:D)。
> 以下は問題点ではなく確認ですが
>
> output_buffering = Off
> mbstring.script_encoding = SJIS
> mbstring.http_output = EUC
> mbstring.internal_encoding = SJIS
>
> で正常に表示するということは
>
> zend-multibyteは、output_bufferingとは無関係
> だということですね。
そうです。今回のパッチはoutput関連には全く噛んでいません。なので変だなー
とおもっていたのです。
--
藤本 真樹
アストラザスタジオ
fujimoto@studio.co.jp