電子書籍の厳選無料作品が豊富!

Webブラウザのアドレス欄にURLを入力するときに、例えば、
http://ja.wikipedia.org/wiki/%E5%AE%87%E5%A4%9A% …
として入力しても、
http://ja.wikipedia.org/wiki/宇多田ヒカル/
として入力しても同じページが開けるんですが、"宇多田ヒカル"から"%E5%AE%87%E5%A4%9A%E7%94%B0%E3%83%92%E3%82%AB%E3%83%AB
"へはどういう規則で変換しているんでしょうか?文字の変換表の載っている記事へのリンクを紹介していただけるとありがたいです。どなたか知ってる方教えてください。

A 回答 (3件)

これはform-urlencodedと言う形式です


http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 …
簡単に言うと
「半角英数字(と一部の記号)以外の文字(漢字、かな等)は
フォームデータなどにする場合、そのまま送るのではなくて
% と文字の番号 で表した方がいいかもしんないです。」と言う提案がありまして
多くのブラウザは「まあ、そうしてやってもいいや」として、従っているわけです。

でご質問の "宇多田ヒカル"から"%E5%AE%87%E5%A4%9A%E7%94以下略ですが
http://ash.jp/code/unitbl21.htm
で "宇" の文字を探すと その左に E5AE87 と書かれた部分が有りますね?
つまり上記の提案の方式で "宇" を表すと%E5%AE%87 に成る訳です。

で、それを普通の日本語に戻すには#2さんの書かれたような処理が必要になります
また上記のページに jis sjis euc などとかかれていますがそれについては
http://ash.jp/code/code.htm
辺りをご覧ください。

また 上記のページじゃなくても
文字コード表は windows系OSならプログラム>アクセサリ>システムツール>文字コード表 でも出てきます
    • good
    • 0
この回答へのお礼

分かりやすい解説ありがとうございます。
求めていた文字コード表(各文字コードに対応する)のリンクを示していただき助かりました。

お礼日時:2006/11/08 23:23

Perlですが、こういうコードで変換しています。


$Value =~ s/%([\dA-Fa-f]{2})/pack("C", hex($1))/ge;
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!