Punycode(ピュニコード)とは
インターネットで使われるドメイン名にアルファベットや数字以外に漢字なども使えるようにする
国際化ドメイン名( IDN (Internationalized Domain Name) )
で使われる文字符号化方式で、IETFにより、
「
RFC3492」
として標準化されている。
国際化ドメイン名では、ドット(.)で区切られたドメイン名の階層レベルごとに
エンコードされ、それぞれの先頭には「xn--」という識別子が付けられる。
また、大文字と小文字は区別されない。
特に このピュニコードでは、
文字数最長63文字、
文字の種類37文字 と
非常に過酷な制限のあるドメイン名の空間において、
できるだけ効率よくエンコードができるように
非常に複雑な変換を行っている。
その結果、通常のエンコードでは予想できない変換結果となる。
具体的には、例えば、アルファベットと全角文字が交じり合った
「日本語ドメイン名EXAMPLE.jp」というドメイン名は、
ピュニコードに変換すると、
「xn--example-6q4fyliikhk162btq3b2zd4y2o.jp」
のように、「EXAMPLE」という部分が小文字に変換されかつ
前の方に来ている。
また
「3年B組金八先生.jp」のように、「3」と「B」に間に「年」という
日本語が存在している場合でも
「xn--3b-ww4c5e180e575a65lsy2b.jp」
というように、「3」と「B」が先頭部分に移動してくっついてしまっている。
このおもしろい変換メカニズムには
「一般化可変長整数」というアルゴリズムが採用されており、
詳細については もちろん 前述の
「
RFC3492」
に書かれているわけだが、それを読み解くのは大変だ。
それを
「
日本語ドメイン取得.com」
の
「
Punycode (プニーコード)」
解説ページでは とても判りやすく解説してくれている。
【参考リンク】
カテゴリー:
DNS・URL・URI
2007年5月16日 22:47
トラックバック
このエントリーのトラックバックURL:
http://www.skymerica.com/blog/yotsumoto/mt/mt-tb.cgi/801
コメントしてください