- ベストアンサー
エンコード UTF-8
フォームで入力されたテキストを Googleなどで検索するさいエンコードされてる UTF-8 へエンコードして表示させてたいのですが、 方法ありますでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あれ、フォーム側もutf-8なんだっけ? 勘違いしてたかも。 だったら、ただ print urlencode($_POST["hoge"]); だけでOKかも。
その他の回答 (3)
- GuruGuru22
- ベストアンサー率51% (177/346)
$result = mb_convert_encoding($_POST['hoge'],'utf-8','Shift_JIS'); この後、$result をprintしたら、「テスト」って表示されますか。 'Shift_JIS'の部分は環境に応じて変更、もしくは省略してくださいね。
- GuruGuru22
- ベストアンサー率51% (177/346)
mb関数使えるとして $result = mb_convert_encoding($_POST['hoge'],'utf-8','Shift_JIS'); print urlencode($result); てな感じ。
補足
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)
<input type="text" name="hoge"> とかから値を送ったとして $result = htmlentities($_POST['hoge'],0,'utf-8'); こういうのでどうでしょうか?
補足
回答していただきましてありがとうございます。 試してみました。 出力用ファイル <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= とし表示させるには、まだ、足りないことがあるのでしょうか?
補足
テストと入力しSUBMIT $result をprintした結果は ][] と表示されました。 この表示用ファイルはUTF-8にしています。 表示もUTF-8です。 SHIFT-jis で保存し、表示してみたところ 同じでした。 サーバーの設定がおかしいのですかね?