[PHP-users 34327] Re: カゴヤサーバで携帯のみ文字化け
レバレッジファーム
suzuki @ leveragefarm.jp
2009年 3月 4日 (水) 21:05:26 JST
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 メーリングリストの案内