[PHP-users 34329] Re: カゴヤサーバで携帯のみ文字化け

KZ kz @ ykc.zapto.org
2009年 3月 5日 (木) 00:48:07 JST


KZです。

読み返してみて、szkさんが誤解している、というか、私が説明不足
でしたので追記です。

今回の文字化けはブラウザが文字コードを誤認するということではな
く、出力前にPHP内部で文字化けしてしまうという問題です。携帯のみ
文字化けという表現がまずかったです。正確には、

mb_http_output('SJIS-WIN')で文字化け

と表現すべきでした。

--
KZ


On Wed, 04 Mar 2009 21:05:26 +0900
レバレッジファーム <suzuki @ leveragefarm.jp> wrote:

> szkです。
> 
> こんなの見つけましたよ。
> http://iidx.jp/archives/2008/01/mb_http_output.html
> 
> $strの中身は「通常の文字列」と言いたい気持ちは重々わかります
> が、しょせんはコードの並びなので、表示させたい端末さんにとっ
> てわかりやすいコードの並びを$strに入れてあげないといけないの
> ですよね。
> 
> えっと、それから
> mbstring.http_output
> ってのはec-cube用の定義関数なので、ec-cubeのマニュアルも参考
> にした方がいいかもしれませんね。
> http://wiki.ec-cube.net/
> 
> あと私もはまったのですが、EC-CubeはPHP4用のオブジェクト指向
> で作られています。それをPHP5でも使えるようにもしてあるので、
> 今後カスタマイズを進めるならそのことも頭に置いておいた方がい
> いですよ。
> 
> PHP5のオブジェクト指向でそのプログラムを眺めると「動いている
> のに、なんでやね〜ん」とはまります。
> ちょっとしたコマンドもしかり。
> 
> ではでは
> 
> 
> On Mon, 2 Mar 2009 18:32:30 +0900
> KZ <kz @ ykc.zapto.org> さんは書きました:
> 
> > KZです。
> > 
> > まつやま様、Chatii様、ご返信ありがとうございます。
> > 
> > 一応解決しましたので、ご報告致します。
> > 
> > こちらのプログラムは、スクリプトはすべてUTF-8、
> > 内部文字コードもUTF-8です。
> > 
> > 携帯版の出力関連は、
> > 
> > if(ini_get('mbstring.http_output') != 'SJIS-WIN'){
> >     mb_http_output('SJIS-WIN');
> >     ob_start("mb_output_handler");
> > }
> > echo $str; //$strは生成されたHTML(通常の文字列)
> > 
> > としていました。
> > 
> > プログラム全体を通して、ブラウザへの出力はこのecho
> > のみですので、今回はまつやま様のアドバイスを参考に
> > させていただき、
> > 
> > //削除	if(ini_get('mbstring.http_output') != 'SJIS-WIN'){
> > //削除	    mb_http_output('SJIS-WIN');
> > //削除	    ob_start("mb_output_handler");
> > //削除	}
> > 
> > echo mb_convert_encoding($str,'SJIS-WIN','UTF-8');
> > 
> > とすることにより、現象は一応解決としました。
> > 
> > mb_convert_encoding() は外部ファイルを読み込む部分
> > や、form入力部分では使用していますが、ここで使うと
> > いう発想が、情けないことにまったく出ませんでした。
> > 
> > ただ、設定のどこがこの現象を引き起こしているのかは
> > 判明していませんので、気持ち悪いのですが。
> > 
> > では。
> > 
> > 
> > --
> > # ページのエンコーディングがおかしいだけではありませんw
> > KZ
> > 
> > _______________________________________________
> > PHP-users mailing list  PHP-users @ php.gr.jp
> > http://ml.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > http://oldwww.php.gr.jp/php/novice.php3
> 
> @レバレッジファーム
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
> 



PHP-users メーリングリストの案内