- ベストアンサー
PHP フォームからのデータが文字化け
PHPにて簡単な以下のようなアプリを勉強がてら作っています。 1.登録フォームを表示 2.確認画面表示 3.DB(MySQL)にデータ登録 そこで質問なのですが、フォームから入力し確認画面を表示するときに、フォームから入力した文字が文字化けしてしまいます(正確には文字化けする時としない時があります)。 出力ページはSmartyを使っています。 テンプレートはUTF-8を使っており、テンプレート内の文字は文字化けしません。PHPソースもUTF-8で書いてあります。 各PHPソースには mb_language("uni"); mb_internal_encoding("UTF-8"); mb_http_output("UTF-8"); と記述しています。 DB(MySQL)のテーブルはUTF-8にしてあります。 1点気になるのは、某ホスティングサービス上で作っているのですが、PHPinfoで見てみるとmb_internal_encodingはEUC-JPになっています。 今回UTF-8で作りたいのですがどうしたら良いのでしょうか? 環境は、 Apache 1.3.34 / PHP 4.3.7 / MySQL 4.1.21 です。 アドバイスお願いいたします。
- みんなの回答 (4)
- 専門家の回答
お礼
ありがとうございます。 まず訂正です。先程投稿しました「やってみました・・・」の中で、 「phpinfo()のmb.internal.encodingはUTF-8で変わらず。」は 「phpinfo()のmb.internal.encodingはEUC-JPで変わらず。」の間違えです。 回答いただきました内容ですが、 $enc = mb_detect_encoding(); if($enc != "UTF-8") $str = mb_convert_encoding ($str,"UTF-8",$enc); といった事で対応する感じで良いのでしょうか?