• ベストアンサー

エンコード UTF-8

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

  • PHP
  • 回答数4
  • ありがとう数0

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

  • ベストアンサー
回答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

  • 文字エンコードはをUTF-8にする方法

    文字エンコードはをUTF-8にする方法。 yahooジオシティーズを使って、HPを作っております。 素人ながら、アドバンストHTMLエディタを使い、ファイルマネージャーを使って、htmlで作っております。 HPの中で、google map を張り付けたいと思いましたが、文字のエンコードをUTF-8にしないと表示できないと聞きました。 どのようにすれば、文字のエンコードは変えることができますか? よろしくお願いします。

  • UTF-8のPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    UTF-8で作ったPerl内で、UTF-8にエンコードしたい部分とは別に、 EUCやShift-jisにエンコードして、 UTF-8以外の仕様になっている検索エンジンなどの検索結果に、 テキストリンクを飛ばしたいのですが、行き詰まりました。 いい方法はありますでしょうか。

    • ベストアンサー
    • Perl
  • 「UTF-8」にエンコード

    WEBアプリケーションで、ユーザーが入力した内容を UTF-8形式のXMLにする必要が生じています。 以下の様に、入力内容を「UTF-8」にエンコードしています。 String utf8Name = new String(this.name.getBytes("UTF-8")); #[this.name.]には入力内容が入っています。 この処理の結果、ある特定の内容だと、エンコードに失敗し XML文書が崩れてしまっているのです。 例えば、「あああ」とかは問題なくエンコードされるのですが 「サーバ」などとすると、失敗してすうのです。 (ブラウザで開くと崩れている形になっているのです。) 他に何か注意する点などないでしょうか?

  • UTF-8等のエンコードでテキストファイル書込

    Windowsデスクトップアプリケーション(C++)で簡易的なアプリを作っています。[OK]をクリックするとEditコントロールに入力されたテキストがテキストファイルとして保存されますが、メモ帳で開くと文字化けします。エンコードを変えて再度読み込んだところ、読み込むことができたエンコードはUTF-16 LEでした。 UTF-8等のエンコードで書き込みすることはできるんでしょうか。

  • エンコード UTF-8 とは?

    「PC」からi phoneにメールを送ると「文字化け」します。 【iPhoneから送られたメールをWindows Mailとか Outlook Expressで見ると 正しくエンコードしなくて見られないことがあるのですが、それは エンコードでUTF-8を選択すれば見られるようになります。】 ↑同じような内容の質問が、 ネット上で検索かかったのですが、 そもそも「エンコード  UTF-8」とは何でしょうか? どのような設定をすれば良いでしょうか? 因みに私がPCからiphoneにメールを送ると 「文字化けしてて見えない」といわれます。 が、文字化けする時、しない時があります。

  • ブラウザのUTF-8 エンコード設定

    あるサイトでは「-」「_」「:」「<」「=」のような記号を使って検索する必要があるのですが、 対応できないエンコードがあるので、ブラウザにUTF-8を設定してください Non-UTF-8 encode. Please set your browser's encoding. のようなエラーメッセージが表示されます。以前は大丈夫だったのですが、win10に変えたせいなのかエラーが出るようになりました。 左上のメニューバーから表示→エンコードでUTF-8で既に設定してあるはずなのですが何がダメなのでしょうか。 対処法が分かる方がいれば教えていただきたいです。

  • utf16の記号のutf8へのエンコード(もしくはマッチ又は削除)がう

    utf16の記号のutf8へのエンコード(もしくはマッチ又は削除)がうまくいきません。 お世話になります。 前々回、、、、 http://okwave.jp/qa/q6232556.html でUTF-16をUTF-8に変換する方法を教えていただきました。 (その節は、ありがとうございました) $name=~s/\\u([[:xdigit:]]{4})/chr eval "0x$1"/eg; が、この方法だと、記号が変換されず、例えば、、、 ●「~」 は 「\x{301c} 」 と表示され ●「・」 は 「\x{2022}」 と表示されてしまいます。 これらの記号のデコード方法が調べても分からなかったので、いっそ、削除しちゃえ!とばかりに、、、 「「x」から始まり「}」で終わる文字は根こそぎ削除!というプログラムを組み込んでみたのですが、まったく反応せず。 チェックの為に行った「x」だけの削除ですらマッチせず。。。。 (これでは反応しないはずですね。。。) ということで、utf16の「記号」のutf8へのエンコード(もしくはマッチ又は削除)の方法について、アドバイスいただければ幸いです。

    • ベストアンサー
    • Perl
  • エンコードについて

    phpでXMLやデータベースとの連携を実験中です。結果、連携はうまくいったのですが、文字のエンコードについて思うことがあります。連携によって引き出された情報はテキストとなってphp上に表示されますが、エンコードがどれもUTF-8となっています。その為文字化けが起こってしまい、右クリック>エンコード>Unicode(UTF-8)という手順でエンコード方法を変更する手間が発生してしまいます。 製作側の自分自身はもちろんのこと、これではユーザー側にも面倒な一手間をかけてしまうことになります。 なんとかこのエンコード方法を一般的なSJISにする方法はありませんでしょうか?

    • 締切済み
    • PHP
  • Shift-jisのPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    Shift-jisで作ったPerlにて、テキストをEUC、UTF-8、Shift-jisにエンコードし外部検索サイト等にテキストリンクを飛ばしたいのですが、うまくいきません。 過去ログにUTF-8から、EUC、UTF-8、Shift-jisへのエンコード方法をみつけ http://oshiete1.goo.ne.jp/qa3745875.html 試行錯誤しましたが、Shift-jisからはうまくいきませんでした。 perl のバージョンは5.8.8です。 ご教示のほどよろしくお願いします。

    • ベストアンサー
    • Perl
  • UTF8 URLエンコード

    こんにちわ。 PerlのCGIです。 今までEUCとsjisの変換連打で開発を乗り切って来たのですが、 さすがに古すぎて周りの人が迷惑らしいので、初めてUTF8を使うことになりました。 一応全部UTF8だけで作ろうと思います。 大まかな質問は三つです。 1:   UTF8は可変ビット (バイト単位ではない) の、   ほぼ全ての国際言語対応文字コードと言う認識で合ってますか? 2:   そうなってくると、データの送受信などのURLエンコードは不要ですか?必要ですか? 3:   もしURLエンコードが必要なら、一般に通用する変換方法を教えてください。   ついでなんでデコードの記述もお願いします。 すみませんがよろしくお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう