- ベストアンサー
URL送信に16進コードに変換される文字列って?
よくForm内の情報を送信する際、送信されるタグのvalue値に 半角のスペースが入っていると、それは「%20」っていうコードに変換されます。 この半角スペース以外にも16進コードに変換される文字にはどのような ものがあるんでしょうか? 変換される前と後の文字コードを教えていただけると嬉しいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
URI内で使用が許されているキャラクタは、 大文字小文字の英数字と、一部の記号のみです。 一部の記号とは、列挙すると -_.!~*'() となります。 これは RFC2396 に記されています。(参考URL) これ以外のキャラクタのことを unreserved character (非予約語とでも訳すのでしょうか)といいまして、 これを使うときは % と16進数2桁で示します。 なお、キャラクタがどういう16進数に変換されるか というのは、それぞれのコンポーネントによって 違いますので、一概には言えません。 日本語にしても、Shift JIS でエンコードしたり、 EUC でエンコードしたり、WWWブラウザがそういう 制御を相手サーバによって行っているようです。 具体例でいうと、ASCII コードでエンコードする場合は、 http://www.okweb.ne.jp/ を無理矢理(笑)エンコードしてアクセスするとき、 http://%77%77%77.%6f%6b%77%65%62.%6e%65.%6a%70/ となります。ASCII コード表を見れば作れます。
その他の回答 (2)
- kenkenkent
- ベストアンサー率30% (565/1854)
半角英字以外の文字はほぼ全て文字化けすると考えていいでしょう。 プロのウェブデザイナーをしている私の友人から聞いたのですが、 フォームメールから送信した日本語は、環境によっては URLエンコーディングされて文字化けしてしまう可能性があるそうです。 これを回避する為には、CGIによる送信フォームを使うと、 ほとんど起きないそうなのですが、HPの設置先によっては、 独自のCGIの使用が禁止されていたりします。 また、自分でCGI書けなかったりしますよね。 私もCGIわからないので、通常のメールフォームを置いてますが、 やはり文字化けが多いです。仕方ないので、本に載っていた 『ASCIIコードにエンコードされた文字列を日本語に変換する』 というJAVA Scriptを書いて、自分のところで日本語に 再変換して読んでいます。 質問の本題と少々ズレてしまいましたが、参考までに。
- futaroh
- ベストアンサー率25% (1/4)
漢字なども変換されますね。 URLで指定するところには7bitの文字コードしか通らないので、漢字などの8bitコードは7bitに変換しないとうまくいかないのです。 そこで、FORMデータなどは‘JIS’と呼ばれるコード系に変換します。