- ベストアンサー
mb_convert_encodingのタイミング
検索フォームがあるphpファイルはShift_JISですが、検索を問い合わせるデータベースがEUC-JPになっています。 <form action="search.php" method="post"> <input type="text" name="keyword" size=30> <input type="submit" value="検索"> </form> 検索フォームで入力されたキーワードをmb_convert_encodingでShift_JISに変換してからpostしたいのですが、search.phpで検索キーワードを受け取る前にエンコード変換することは無理なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>Shift_JISに変換してからpost おっしゃる意味がよくわからないのですが、 HTML側で先にコンバートする・・・ということですか? もしそうであればPHPが動いているのはサーバー側なので データが送られてこないことには話になりません。 ですのでご希望の命題を達成することはできません。 受け取った側で変換すればすむのでは?
その他の回答 (1)
- shimix
- ベストアンサー率54% (865/1590)
ANo.1の方も書かれていますが、普通はSJISのhtmlからはSJISでPOSTされます。なので受け取った直後に変換してしまうのが吉だと思います。 if ($_POST) { $keyword = $_POST['keyword']; if (get_magic_quotes_gpc()) { $keyword = stripslashes($keyword); } $keyword = mb_convert_encoding($keyword, 'EUC-JP', 'SJIS') } #場合によっては「間違いなくSJISでPOSTされているか」を確認した方がベターではありますが・・
お礼
どうもありがとうございました。
お礼
どうもありがとうございました。 受け取った側で変換することができました。