- ベストアンサー
携帯向けフォームの文字化け
過去の事例で色々と対処してみたのですが、一向に解決しませんのでご質問させて頂きます。 環境はUbuntu8 Apache2 PHP5.2.4 UTF-8で作成しています。 オーダー、お問い合わせの処理の部分で、どうしても確認画面、送信で携帯の方だけが文字化けしてしまいます。(PC、ローマ字は問題ありません) PCと携帯サイトはphp自体は同じ物を見ていて、読み込むテンプレートと、一部エンコード処理、metaなどを分けている状態です。 対処した事としましては、 apache2のphp.iniの設定を以下いじりました。 mbstring.encoding_translation = On mbstring.http_input = auto mbstring.internal_encoding = UTF-8 そしてphp処理内(携帯のみ)で、 mb_http_output("SJIS"); ob_start("mb_output_handler"); としています。 phpinfoで確認しました所、上記設定で反映されております。 勿論ページは問題なく表示されているのですが、フォームに打ち込まれる日本語がうまくエンコードされません。 フォームから飛ばしたPOSTを、 $_POST=mb_convert_encoding($_POST,"SJIS","UTF-8"); 等とすると、日本語を何を入力しても「A」とだけ表示され、上記を省いても空か、「xyz」などとなります。 実際にはlolipopのレンタルサーバーに上げて動作させたいのですが、上げた物も同じ動きをします。 何か穴がありましたらご教示頂けませんでしょうか?よろしくお願い致します!
- みんなの回答 (3)
- 専門家の回答
お礼
おっしゃる通りでした…勉強不足でご迷惑お掛け致しました。 テンプレ自体をShift_JISにし、モバイルのみの設定でinternal_encodingをShift_JISにすることで何とかShift_JISを正常に表示出来そうです。 PHP内で変数に入れてしまっている日本語部分はmb_convert_encodingで対処出来そうです。 色々と勉強になりました。ありがとうございました!