• ベストアンサー

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で検索キーワードを受け取る前にエンコード変換することは無理なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>Shift_JISに変換してからpost おっしゃる意味がよくわからないのですが、 HTML側で先にコンバートする・・・ということですか? もしそうであればPHPが動いているのはサーバー側なので データが送られてこないことには話になりません。 ですのでご希望の命題を達成することはできません。 受け取った側で変換すればすむのでは?

240t
質問者

お礼

どうもありがとうございました。 受け取った側で変換することができました。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

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されているか」を確認した方がベターではありますが・・

240t
質問者

お礼

どうもありがとうございました。

関連するQ&A