Punycode使RFC 3492 Unicode DNS使

概要

編集

ドメイン名として Punycode を使用する際は、ピリオド(.)で区切られたドメイン名の階層レベルごとにプレフィックスとして「xn--」を使用し、エンコードされた文字列を続ける。大文字と小文字は区別されない。

可読なドメイン名 Punycodeでのドメイン名
ドメイン名例.jp xn--eckwd4c7cu47r2wf.jp
ウィキペディア.ドメイン名例.jp xn--cckbak0byl6e.xn--eckwd4c7cu47r2wf.jp
可愛いね.そうでもないよ xn--n8j5d625jn9k.xn--n8jd2ewbp7lub

エンコーディング手順

編集

この節では、 Punycode のエンコーディング手順を、「bücher[1]がどのようにして「bcher-kva」と変換されるかを例にとって、説明する。

ASCII文字の分離

編集

ASCIIASCIIASCII -
入力文字列 処理後
bücher bcher-
日本Japan Japan-
MajiでKoiする5秒前 MajiKoi5-

ASCII文字の挿入をコード番号としてエンコード

編集



2 i n iASCII0 () ASCII () 05n
分離後文字列 b c h e r
挿入位置i 0 1 2 3 4 5

i 0n 128 (ASCII) 調 i1 i n1i 01n

"ü" UnicodeU+00FC, 10252ü 1ü 124 (251 - 127 = 124) ASCII"bcher" 60 () ü1(124 × 6) + 1 = 745ASCII

コード番号をASCII文字列として再変換

編集

Punycode 使745kva

 Punycode 

Punycode 使36使'a''z'025'0''9'2635 ( (base) 36)
10進数 0 1 2 3 24 25 26 34 35
一般化可変長整数 a b c d y z 0 8 9

kva10 21 0 (1 1 26)  (k10) 111352 (v21) 3521353 (a0) 352 = 1225 303261kva 10 × 1 + 21 × 35 + 0 × 1225 = 745 

w(j)t(j)[2]:

 

 

 
t(j)tmintmintmaxtmax bias 

base = 36, tmin = 1, tmax = 26

2bias調bias"bücher" 2ASCIIbüücher "bcher-kvaa" bücüher "bcher-kvab" bücherü "bcher-kvae" ýbücher "bcher-kvaf" 

脚注

編集
  1. ^ ドイツ語で「書籍」 (複数形) を意味する。
  2. ^ "Generalized variable-length integers". IDNA Punycode (英語). doi:10.17487/RFC3492. RFC 3492

関連項目

編集

外部サイト

編集