- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのGETとPOSTの処理を学習中なのですが、valueに日本語が)
PHPのGETとPOSTの処理における日本語の変換について
このQ&Aのポイント
- PHPのGETとPOSTの処理を学習中なのですが、valueに日本語が入力されていた場合の処理について分からない点があります。
- ブラウザのアドレスバーには"%0D%0"というURLエンコードされた文字列が表示されていますが、PHPのソース上ではしっかりと日本語として表示されています。
- 具体的にどこでURLエンコードされた文字列が再び日本語に変換されているのか分かっていません。ご教授いただけますと幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#243182
回答No.2
よくある質問の中に、同じような疑問に対する答えがあります。 裏を返せば、ブラウザを通さずデータをやり取りする場合、その作業はスクリプト製作者に任されるということです。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
>ブラウザのアドレスバーには"?static=静的%0D%0A・・・ 「%0D%0A」はwindowsの改行マークですね 「静的」と日本語がブラウザで表示されているようにみえますが 実際にサーバーに送られているデータはエンコードされたものに なっているはずです。(ブラウザが見やすくしてくれてるだけ) そのURLを一度ブックマークしてみて、その詳細をみれば わかると思います。 >URLエンコードされた文字列が再び日本語として表示されるよう変換されているか エンコードされたデータはサーバーで参照される際に自動で デコード評価されます。
質問者
お礼
回答ありがとうございます。 ご指摘の通り、私がエンコードされたと考えていた文字列は改行マークだったようです。 教えていただいたとおり、ブックマークしてURLを閲覧したところ、アドレスバーに表示されたものよりも遙かに長い、日本語 がエンコードされた文字列が含まれていました。 その後は、サーバーがphpによってデコードしているという解釈で良いでしょうか。
お礼
回答ありがとうございます。 ブラウザを通さない場合はエンコードもPHPでやらなければならないということですね。 教えていただいたURLの中に質問に対する回答が完全に掲載されいて、疑問が解けました。 " フォームの内容を送信するとき、GET か POST かにかかわらず data は ブラウザによって URL エンコードされ、PHP によって URL デコードされます。 要は、URL エンコード/デコードを自分で行う必要はなく、これらの処理は すべて自動的に行われると言うことです。" http://www.php.net/manual/ja/faq.html.php 大変勉強になりました。ありがとうございます。