<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <dfn>Punycode</dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DNS</anchor> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>するために使われている<ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor><rt>アルゴリズム</rt></ruby>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は任意の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>に転写し、旧来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DNS</anchor>
で扱える形にします。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <strong><cite xml:lang="en">RFC 3492 - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3492">http://tools.ietf.org/html/rfc3492</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <cite>RFC Errata Report » RFC Editor</cite>, <time>2021-04-23T10:01:53.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.rfc-editor.org/errata_search.php?rfc=3492">https://www.rfc-editor.org/errata_search.php?rfc=3492</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en">RFC 5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</cite><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5890#page-8">http://tools.ietf.org/html/rfc5890#page-8</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5890#section-2.3.4">http://tools.ietf.org/html/rfc5890#section-2.3.4</anchor-external></li></ul></li></ul></refs></section><section><h1>呼称</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5890</anchor> は、「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>」のような表現はその意図が不明確なため、
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor>」は<ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor><rt>アルゴリズム</rt></ruby>であり、
それ以外の用法は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">discourage</rt></rubyb>とすると述べています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Nameprep</anchor> や「<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xn--</anchor></code>」を付加した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XNラベル</anchor>など、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor>
における他の処理も含めた総称として使われることがありますが、この用法は言及対象が不明瞭になってしまうので不適切です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> はあくまで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に変換する方法のみを指して言うべきです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> Punycode は「プニコード」、「ピュニコード」などと発音されます。</p></section><section><h1>算法</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>です。</p><section><h1>引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を次のように設定したものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src>。</p><figure class="list members middle"><dl><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <var>base</var></dt><dd>36</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <var>t<sub>min</sub></var></dt><dd>1</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <var>t<sub>max</sub></var></dt><dd>26</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <var>skew</var></dt><dd>38</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <var>damp</var></dt><dd>700</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <var>initial<sub>bias</sub></var></dt><dd>72</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <var>initial<sub>n</sub></var></dt><dd>128 (0x80)</dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>に対して有効に機能するような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の設定となっています。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>としての制約は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非負整数</anchor>の列が入力となることであり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
である必要はありません。) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></p><figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x00</anchor> ... <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x7F</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">区切子</anchor>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x41</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">A</anchor></code>) ... <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x5A</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Z</anchor></code>) が 0 ... 25 を表します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x61</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">a</anchor></code>) ... <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x7A</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">z</anchor></code>) が 0 ... 25 を表します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x30</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor></code>) ... <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x39</anchor> (<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</anchor></code>) が 26 ... 35 を表します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数字</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">区切子</anchor>として使いません。</li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号器</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>、その混合のいずれも認識しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化器</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字混合注釈</anchor>を使う場合を除き、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>のみ、または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>のみを出力する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></p></section><section><h1>型の大きさ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> 用途では、 26ビット<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号無し整数</anchor>を使うと (正当な入出力に対して)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">桁溢れ</anchor>なく処理できます。26ビットあれば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10FFFF</anchor> まで、
63<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>までの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラベル</anchor>を正しく扱えます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 6.4</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> 以外でより長い<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を扱いたい時、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10FFFF</anchor> より先が含まれる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor> (やそれ以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>) を扱いたい時には
26ビットでは足りないかもしれません。</p></section><section><h1>大文字・小文字混合注釈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字混合注釈</anchor>が使えるようになっています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src>
(<var class="math">t<sub>max</sub></var> が 26 で、25 以下は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>なので、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">差分</anchor>の最後の1文字は常に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>が存在する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>になります。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> ただし、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字不区別</anchor>なので、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字・小文字混合注釈</anchor>も使われません。 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 正確には、使わないというか、使う必要性がないという感じです。使っても構いません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Uラベル</anchor>の定義上<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>を混在させることに意味がなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Aラベル</anchor>で使う <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>した文字列は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>にするべきとされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;57</anchor-internal></src>。</p></section></section><section><h1>符号化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <dfn>Punycode符号化</dfn>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を用いて実行する操作です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 入力は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">出力</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">出力</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>の範囲の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ToASCII</anchor> から呼び出されます。</p></section><section><h1>復号</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> <dfn>Punycode復号</dfn>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>を、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を用いて実行する操作です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> 入力は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">出力</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失敗</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode IDNA互換性処理</anchor>から呼び出されます。</p></section><section><h1>文字コードとしての Punycode</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DNS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラベル</anchor>での<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>に特化した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>であり、
汎用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>よりはむしろ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号理論</anchor>的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報圧縮</anchor>の延長にある技術です。
汎用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は大抵の場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の順序と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>の列の順序が同じである、
とある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>の列が前後の文脈によって著しく変化することがない、
任意の長さの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>することが容易である、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の連結や一部分の取り出しが容易であるといった性質を備えていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> はこれらの性質を持っていません。</p></section><section><h1>ASCII 文字列</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字列</anchor>の最後に <code>-</code> を追加した値となります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 実装によっては挙動がおかしいことがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字列</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>に使うときは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しないので、
発覚しないことが多いです。他の用途に転用するときは注意が必要です。</p></section><section><h1>空文字列</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>するとどうなるべきなのか不明瞭です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> また <code>-</code> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>した結果が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>なのか、
エラーなのか、 <code>-</code> なのか、はっきりしません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> これらも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>では使わないので問題とはなっていないのですが、
他の用途に転用するときは要注意です。</p></section><section><h1>ACE 接頭辞</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> を表す <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ACE接頭辞</anchor>は、 <dfn><code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xn--</anchor></code></dfn> です
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3490</anchor> 5.</src>。</p></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C言語</anchor>による実装例があります。通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライセンス</anchor>よりも緩く、
自由な利用・改変・再配布が認められています (詳しくは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の附属書 B を参照)。
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3492#appendix-B">http://tools.ietf.org/html/rfc3492#appendix-B</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 実際に多くの言語による実装はこの実装例 (や本文中の擬似コード) を移植したもののようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite>Net::IDN::Punycode - search.cpan.org</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/Net-IDN-Encode/lib/Net/IDN/Punycode.pm">http://search.cpan.org/dist/Net-IDN-Encode/lib/Net/IDN/Punycode.pm</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal> のバージョン 1.0 は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XS</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PP</anchor> も結果が変です。例えば
U+0061 (a) U+1F62 (ὢ) U+03B9 (ι) U+0062 (b) の結果は ab-09b734z であるべきところ、
ab-ymt になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite>Encode::Punycode - search.cpan.org</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/Encode-Punycode/lib/Encode/Punycode.pm">http://search.cpan.org/dist/Encode-Punycode/lib/Encode/Punycode.pm</anchor-external></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal> の単なるラッパーです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <cite>Mojo::Util - search.cpan.org</cite> (<time>2011-04-16 14:39:27 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/Mojolicious/lib/Mojo/Util.pm#punycode_decode">http://search.cpan.org/dist/Mojolicious/lib/Mojo/Util.pm#punycode_decode</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;74</anchor-internal> は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;65</anchor-internal> と同じ現象が発生します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite>Claus Färber / IDNA-Punycode - search.cpan.org</cite> (<time>2011-04-16 14:14:47 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/IDNA-Punycode/">http://search.cpan.org/dist/IDNA-Punycode/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;66</anchor-internal> はバージョン1系は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Net::IDN::Punycode</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Net::IDN::Encode</anchor>
のラッパーです。バージョン0系は独自の実装です。バージョン0系は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張符号位置</anchor>を結ぶ
「-」の扱いが (どちらかが空文字列の時) 変です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <cite>URI::_punycode - search.cpan.org</cite> (<time>2011-04-16 14:19:55 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/URI/URI/_punycode.pm">http://search.cpan.org/dist/URI/URI/_punycode.pm</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> これも「-」の扱いが変です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite>Twinkle Computing / URI-UTF8-Punycode - search.cpan.org</cite> (<time>2011-04-16 14:28:40 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/URI-UTF8-Punycode/">http://search.cpan.org/dist/URI-UTF8-Punycode/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;68</anchor-internal> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>結果の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">utf8フラグ</anchor>を立てません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite>Thomas Jacob / Net-LibIDN-0.12 - search.cpan.org</cite> (<time>2011-04-16 14:37:20 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/Net-LibIDN/">http://search.cpan.org/dist/Net-LibIDN/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal> は入出力が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> を明示的に指定しないといけません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">utf8フラグ</anchor>を立てません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encode::Bootstring</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>の設定方法がおかしく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> には使えません・・・。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は当初 <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AMC-ACE-Z</anchor></dfn> と呼ばれていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> を用いることが決定するまでは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RACE</anchor>
が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ACE</anchor> として採用される可能性が高いと考えられており、
実際に <code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.com</anchor></code> や <code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.jp</anchor></code> など一部の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLD</anchor>
が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RACE</anchor> を用いて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDN</anchor> を運用していました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> と同時に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> 化された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2003</anchor> は公式には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor>
によって置き換えられましたが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2008</anchor>
でも引き続きそのまま採用されています。</p></section><section><h1>関連</h1><section><h1>Unicode との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型</anchor>が十分大きいことを前提に) 任意の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を扱えます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 用として定義されており、
各種<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の設定もそれに最適化されていますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> (や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor>)
の仕組み上は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>で表現可能な任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化文字集合</anchor>に適用できます。</p></section><section><h1>Stringprep との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA2003</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> が併用されますが、
両者には依存関係がありません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> 以外の用途で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> 
を使わずに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> を使うことも理論上は可能です。</p></section><section><h1>ラベルとの関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bootstring</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の組み合わせからは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラベル</anchor>で認められていない出力が得られることがあります。
あらゆる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>なのでそのまま結果に含まれていますし、
先頭や末尾が <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> になることもあります。ですが、<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数字</anchor>、<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> 以外の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> の処理で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>の前に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失敗</anchor>を引き起こすか (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UseSTD3ASCIIRules</anchor> が真のとき)、あるいは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失敗</anchor>にならずにそのまま素通しとなりますが、これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> が実装されてなくても同じなので、問題とはなりません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 先頭が <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> になったとしても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラベル</anchor>として使うときはその前に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ACE接頭辞</anchor>が付加されるので、問題とはなりません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 末尾が <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code> になるのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基本符号位置</anchor>のみ (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>のみ) で構成されるときですが、その時は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDNA</anchor> の処理 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ToASCII</anchor>) で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Punycode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>を行わないことになっているので、問題となりません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> 5.</src></li></ul></p></section></section><section><h1>例</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エジプト語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (A)</src></p><ul><li>U+0644 U+064A U+0647 U+0645 U+0627 U+0628 U+062A U+0643 U+0644 U+0645 U+0648
U+0634 U+0639 U+0631 U+0628 U+064A U+061F</li><li><code>egbpdaj6bu4bxfgehfvwxn</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">簡化字中国語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (B)</src></p><ul><li>U+4ED6 U+4EEC U+4E3A U+4EC0 U+4E48 U+4E0D U+8BF4 U+4E2D U+6587</li><li><code>ihqwcrb4cv8a8dqg056pqjye</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">伝統字中国語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (C)</src></p><ul><li>U+4ED6 U+5011 U+7232 U+4EC0 U+9EBD U+4E0D U+8AAA U+4E2D U+6587</li><li><code>ihqwctvzc91f659drss3x8bo0yb</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">チェコ語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (D)</src></p><ul><li>Pro&lt;ccaron&gt;prost&lt;ecaron&gt;nemluv&lt;iacute&gt;&lt;ccaron&gt;esky</li><li>U+0050 u+0072 u+006F u+010D u+0070 u+0072 u+006F u+0073 u+0074
u+011B u+006E u+0065 u+006D u+006C u+0075 u+0076 u+00ED u+010D
u+0065 u+0073 u+006B u+0079</li><li><code>Proprostnemluvesky-uyb24dma41a</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘブライ語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (E)</src></p><ul><li>U+05DC u+05DE u+05D4 u+05D4 u+05DD u+05E4 u+05E9 u+05D5 u+05D8
U+05DC u+05D0 u+05DE u+05D3 u+05D1 u+05E8 u+05D9 u+05DD u+05E2
U+05D1 u+05E8 u+05D9 u+05EA</li><li><code>4dbcagdahymbxekheh6e0a7fei0b</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヒンディー語</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デバナガリ文字</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (F)</src></p><ul><li>U+092F u+0939 u+0932 u+094B u+0917 u+0939 u+093F u+0928 u+094D
U+0926 u+0940 u+0915 u+094D u+092F u+094B u+0902 u+0928 u+0939
U+0940 u+0902 u+092C u+094B u+0932 u+0938 u+0915 u+0924 u+0947
U+0939 u+0948 u+0902</li><li><code>i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (G)</src></p><ul><li>なぜみんな日本語を話してくれないのか</li><li>U+306A u+305C u+307F u+3093 u+306A u+65E5 u+672C u+8A9E u+3092
U+8A71 u+3057 u+3066 u+304F u+308C u+306A u+3044 u+306E u+304B</li><li><code>n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">韓国語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (H)</src></p><ul><li>U+C138 u+ACC4 u+C758 u+BAA8 u+B4E0 u+C0AC u+B78C u+B4E4 u+C774
U+D55C u+AD6D u+C5B4 u+B97C u+C774 u+D574 u+D55C u+B2E4 u+BA74
U+C5BC u+B9C8 u+B098 u+C88B u+C744 u+AE4C</li><li><code>989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ロシア語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (I)</src></p><ul><li>U+043F u+043E u+0447 u+0435 u+043C u+0443 u+0436 u+0435 u+043E
U+043D u+0438 u+043D u+0435 u+0433 u+043E u+0432 u+043E u+0440
U+044F u+0442 u+043F u+043E u+0440 u+0443 u+0441 u+0441 u+043A U+0438</li><li><code>b1abfaaepdrnnbgefbaDotcwatmq2g4</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スペイン語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (J)</src></p><ul><li>Porqu&lt;eacute&gt;nopuedensimplementehablarenEspa&lt;ntilde&gt;ol</li><li>U+0050 u+006F u+0072 u+0071 u+0075 u+00E9 u+006E u+006F u+0070
U+0075 u+0065 u+0064 u+0065 u+006E u+0073 u+0069 u+006D u+0070
U+006C u+0065 u+006D u+0065 u+006E u+0074 u+0065 u+0068 u+0061
U+0062 u+006C u+0061 u+0072 u+0065 u+006E U+0045 u+0073 u+0070
U+0061 u+00F1 u+006F u+006C</li><li><code>PorqunopuedensimplementehablarenEspaol-fmd56a</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">越南語</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (K)</src></p><ul><li>T&lt;adotbelow&gt;isaoh&lt;odotbelow&gt;kh&lt;ocirc&gt;ngth&lt;ecirchookabove&gt;ch&lt;ihookabove&gt;n&lt;oacute&gt;iti&lt;ecircacute&gt;ngVi&lt;ecircdotbelow&gt;t</li><li>U+0054 u+1EA1 u+0069 u+0073 u+0061 u+006F u+0068 u+1ECD u+006B
U+0068 u+00F4 u+006E u+0067 u+0074 u+0068 u+1EC3 u+0063 u+0068
U+1EC9 u+006E u+00F3 u+0069 u+0074 u+0069 u+1EBF u+006E u+0067
U+0056 u+0069 u+1EC7 u+0074</li><li><code>TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (L)</src></p><ul><li>3年B組金八先生</li><li>U+0033 u+5E74 U+0042 u+7D44 u+91D1 u+516B u+5148 u+751F</li><li><code>3B-ww4c5e180e575a65lsy2b</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (M)</src></p><ul><li>安室奈美恵-with-SUPER-MONKEYS</li><li>U+5B89 u+5BA4 u+5948 u+7F8E u+6075 u+002D u+0077 u+0069 u+0074
U+0068 u+002D U+0053 U+0055 U+0050 U+0045 U+0052 u+002D U+004D
U+004F U+004E U+004B U+0045 U+0059 U+0053</li><li><code>-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (N)</src></p><ul><li>Hello-Another-Way-それぞれの場所</li><li>U+0048 u+0065 u+006C u+006C u+006F u+002D U+0041 u+006E u+006F
U+0074 u+0068 u+0065 u+0072 u+002D U+0057 u+0061 u+0079 u+002D
U+305D u+308C u+305E u+308C u+306E u+5834 u+6240</li><li><code>Hello-Another-Way--fc4qua05auwb3674vfr0b</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (O)</src></p><ul><li>ひとつ屋根の下2</li><li>U+3072 u+3068 u+3064 u+5C4B u+6839 u+306E u+4E0B u+0032</li><li><code>2-u9tlzr9756bt3uc0v</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (P)</src></p><ul><li>MajiでKoiする5秒前</li><li>U+004D u+0061 u+006A u+0069 u+3067 U+004B u+006F u+0069 u+3059
U+308B u+0035 u+79D2 u+524D</li><li><code>MajiKoi5-783gue6qz075azm5e</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (Q)</src></p><ul><li>パフィーdeルンバ</li><li>U+30D1 u+30D5 u+30A3 u+30FC u+0064 u+0065 u+30EB u+30F3 u+30D0</li><li><code>de-jg4avhby1noc0d</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (R)</src></p><ul><li>そのスピードで</li><li>U+305D u+306E u+30B9 u+30D4 u+30FC u+30C9 u+3067</li><li><code>d9juau41awczczp</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3492</anchor> 7.1 (S)</src></p><ul><li>-&gt; $1.00 &lt;-</li><li>U+002D u+003E u+0020 u+0024 u+0031 u+002E u+0030 u+0030 u+0020 U+003C u+002D</li><li><code>-&gt; $1.00 &lt;--</code></li></ul></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite xml:lang="ja">@IT:DNS Tips:Punycodeって小さなコード?</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.atmarkit.co.jp/fnetwork/dnstips/022.html">http://www.atmarkit.co.jp/fnetwork/dnstips/022.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <cite>Punycodeのjavascript実装と変換テスト - Qiita</cite>
( (<time>2014-02-21 03:31:21 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/weal/items/5c0ffefc44cfe7525cbe">https://qiita.com/weal/items/5c0ffefc44cfe7525cbe</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <cite>ものがたり - RFC 3492: one of the best joke</cite> (<code>2007-05-26 02:02:45 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://d.hatena.ne.jp/atsushieno/20070526/p1">https://d.hatena.ne.jp/atsushieno/20070526/p1</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <time>2007-05-26 02:50:13 +00:00</time>)</p></section></body></html>