Punycode表記への変換方法って?

Punycode(ピュニコード)とは

アルファベット・数字・記号に加え、日本語やギリシャ文字などの文字をドメインとして使用可能にする技術のことを「国際化ドメイン名」と呼びます。Punycode(ピュニコード)とは、国際化ドメイン名を、英数字とハイフンの組み合わせで表現できるように変換する技術の事です。

インターネットを支えるインフラの中には、英数字・記号のみの使用を前提としたものが数多く存在します。これらへの影響を最小限にするために、Punycodeという仕組みが必要となりました。

Punycode(ピュニコード)変換とは

日本語ドメイン名がPunycodeに変換されるときには、どのような手順が踏まれるのでしょうか。
以下では、日本語ドメイン名をPunycodeに変換する時の流れを簡単に説明します。

1. 変換したい文字列の中から、英数字を先に抜き出す
2.英数字以外の文字列を、「Unicode(ユニコード)」(*1)に変換する
3.変換した文字を、文字コード順に並べ変える。
4.前の文字との文字コードの差分・元の文字列での文字位置を数値化する
5.数値化された文字データを、英数字で表せるように変換する
6.「国際化ドメイン名である」ということを示す文字列(xn--)を先頭につける

実際にひとつひとつの工程を見ていくと非常に複雑となるため、ここでは概要のみ紹介しています。
多くの文字を効率的に変換するための工夫がされているPunycodeですが、人の手で変換するのは現実的ではありません。変換のために、Punycodeと国際化ドメイン名を変換するプログラムが提供されています。

*1「Unicode(ユニコード)」とは、ユニコードコンソーシアムによって開発された文字コード規格です。
多くの言語の文字を同じ文字コードで扱うことができ、多言語環境に適しているという特徴があります。

まとめ

・Punycodeとは、国際化ドメイン名を英数字とハイフンの組み合わせで表現できるように変換する技術のこと。