Punycode
読み:ピュニコード
外語:Punycode
国際化ドメイン名
を実現するために提案された符号法の一つで、その後正式に利用されることが決定された。
RFC 3492
で規定され、このRFCは
RFC 5891
で更新されている。
目次
概要
由来
Puny?
特徴
接頭辞
ASCII混合文への対応
概要
由来
国際化ドメイン名を実現するため、様々なアルゴリズムが考えられた。そのうちの一つである。
仮称はAMC-ACE-Zで、Adam M. Costello氏が26番目(アルファベットでAから数えてZ)に考案したACEであることから付けられた。その後Punycodeという正式名称が氏本人から命名された。
Puny?
Punycodeだが、作者曰く「Unicodeをもじったもの」だそうである。しかしこれは推論に過ぎないが、氏が
ぷに
を強く意識していた可能性を指摘せねばならない。
RFCとなった現在もそうだが、
I-D[ietf-idn-punycode]
の頃から変換例に「3年B組金八先生」とか「MajiでKoiする5秒前」などが挙げられていて、どこまで真面目なのか判断つけかねるところがあった。
作者曰く、偶然日本のTV番組や曲タイトルに詳しかったためで、これらは様々な文字の組み合わせで例とするのに最適なのだ、とのことである。
特徴
接頭辞
Punycodeであることを判別するための、ドメイン名の接頭辞はxn--である。
この接頭辞は、実用化されなかったものも含め、アプリケーションのドメイン名国際化を定める
RFC 3492
にて規定がある。
ASCII混合文への対応
従来のDNSで対応できる文字を含む場合は、それはそのまま使うことで全体的な文字数を減らす努力をしている。
Punycode含めACEはいずれも特殊な変換法を使うので、従来のDNSで対応できる文字を入力した場合、それよりも長いものを出力する可能性が高い。そこで、このような努力がある。
Punycodeでは、従来のDNSで対応できる文字のみをまず並べ、ハイフン(-)で区切り、その後に差分情報としてPunycodeの符号が出力される。-は-のままで、一番最後の-の後がPunycodeの符号ということになる。
再検索