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

KZ kz @ ykc.zapto.org
2009年 3月 2日 (月) 18:32:30 JST


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 メーリングリストの案内