• ベストアンサー

エンコード UTF-8

フォームで入力されたテキストを Googleなどで検索するさいエンコードされてる UTF-8 へエンコードして表示させてたいのですが、 方法ありますでしょうか?

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

  • ベストアンサー
回答No.4

あれ、フォーム側もutf-8なんだっけ? 勘違いしてたかも。 だったら、ただ print urlencode($_POST["hoge"]); だけでOKかも。

その他の回答 (3)

回答No.3

$result = mb_convert_encoding($_POST['hoge'],'utf-8','Shift_JIS'); この後、$result をprintしたら、「テスト」って表示されますか。 'Shift_JIS'の部分は環境に応じて変更、もしくは省略してくださいね。

diojojo
質問者

補足

テストと入力しSUBMIT $result をprintした結果は ][] と表示されました。 この表示用ファイルはUTF-8にしています。 表示もUTF-8です。 SHIFT-jis で保存し、表示してみたところ 同じでした。 サーバーの設定がおかしいのですかね?

回答No.2

mb関数使えるとして $result = mb_convert_encoding($_POST['hoge'],'utf-8','Shift_JIS'); print urlencode($result); てな感じ。

diojojo
質問者

補足

GuruGuru22さん 回答ありがとうございます。 テストと入力し GuruGuru22さんに教えていただいた通りのファイルで 出力したところ %E7%B9%9D%00%E3%81%9B%E7%B9%9D と表示されました。 しかし Googleの検索後のエンコードされた文字 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=%E3%83%86%E3%82%B9%E3%83%88 の %E3%83%86%E3%82%B9%E3%83%88 部分とは違う結果になりました。 ほかに方法などありましたら、 あまりPHPに詳しくないため、書き方が まちがっているのかもしれません。 ほかの方法などございましたら、 ご教授いただれけばと思います。

  • chupark
  • ベストアンサー率41% (90/218)
回答No.1

<input type="text" name="hoge"> とかから値を送ったとして $result = htmlentities($_POST['hoge'],0,'utf-8'); こういうのでどうでしょうか?

diojojo
質問者

補足

回答していただきましてありがとうございます。 試してみました。 出力用ファイル <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <?php $result = htmlentities($_POST['hoge'],0,'utf-8'); print "$result"; ?> </body> </html> ーーーーーーーーーーーーーーーー 別なHTMLからフォームで テスト と入力し表示結果をみました。 出力用ファイルをUTF-8でつくっています。 表示結果はエンコードされず、テスト とひょうじされました。 下記のように テスト  ↓ (エンコード) %E3%83%86%E3%82%B9%E3%83%88&lr= とし表示させるには、まだ、足りないことがあるのでしょうか?

関連するQ&A