<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正準等価性</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonical equivalence</rt></rubyb></dfn>は、
<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>することを<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正準分解</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonical decomposition</rt></rubyb></dfn>、
できるだけ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合成済文字</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合</anchor>することを<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正準結合</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonical composition</rt></rubyb></dfn>といいます。</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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</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://www.unicode.org/versions/Unicode6.2.0/ch03.pdf">http://www.unicode.org/versions/Unicode6.2.0/ch03.pdf</anchor-external></li><li><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> <cite xml:lang="en-us">UAX #44: Unicode Character Database</cite> (<time>2013-09-27 22:15:15 +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://www.unicode.org/reports/tr44/#Character_Decomposition_Mappings">http://www.unicode.org/reports/tr44/#Character_Decomposition_Mappings</anchor-external></li><li><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> <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.unicode.org/Public/UNIDATA/NormalizationCorrections.txt">http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt</anchor-external></li></ul></refs></section><section><h1>定義</h1><blockquote><p><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正準分解</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonical decomposition</rt></rubyb></dfn>:
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode Character Database</anchor> と <csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Conjoining Jamo Behavior</anchor></csection>
にある<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>がなくなるまで再帰的に適用し、
<csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Normalization Forms</anchor></csection> に従い<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>。
<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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;13</anchor-internal> D68</src></p></blockquote></section><section><h1>正準写像</h1><p><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> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正準写像</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">canonical mapping</rt></rubyb></dfn>は、<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 Character Database</anchor> に含まれる表により定義されています。</p></section><section><h1>歴史</h1><section><h1>訂正 #3</h1><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 3.0.0 から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 3.1.1 までの間、<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+F951</anchor></code>
<code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK COMPATIBILITY IDEOGRAPH-F951</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準分解</anchor>が誤っていたとして、
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">訂正<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">Corrigendum</rt></rubyb> #3</dfn> で修正されています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 3.2.0 以降は正しくなっています。 <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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src></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> 旧版では <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+96FB</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:">正準分解</anchor>されることになっていましたが、
新版では <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+964B</anchor></code> となっています。 <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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src></p><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:">漢字</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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src>
とされていますが、全く違う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>されていて問題ないも何もないですねwww
(この当時は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い正規化安定性</anchor>は保証されていませんでした。)</p><ul><li><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> <cite xml:lang="en-us">Corrigendum #3: U+F951 Normalization</cite> (<time>2011-04-01 06:49:19 +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://www.unicode.org/versions/corrigendum3.html">http://www.unicode.org/versions/corrigendum3.html</anchor-external></li></ul></section><section><h1>訂正 #4</h1><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:">Unicode</anchor> 3.2.0 において5つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK互換漢字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準分解</anchor>が誤っていたとして、
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">訂正<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">Corrigendum</rt></rubyb> #4</dfn> で修正されています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 4.0.0 以降は正しくなっています。 <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="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><table><tbody><tr><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK互換漢字</anchor></td><td>誤 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 3.2.0)</td><td>正 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 4.0.0)</td></tr><tr><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F868</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2136A</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+36FC</anchor></code></td></tr><tr><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F874</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+5F33</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+5F53</anchor></code></td></tr><tr><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F91F</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+43AB</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+243AB</anchor></code></td></tr><tr><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F95F</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+7AAE</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+7AEE</anchor></code></td></tr><tr><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F9BF</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+4D57</anchor></code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+45D7</anchor></code></td></tr></tbody></table><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="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml" class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2F868</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:">符号位置</anchor>の入力ミスのようです。</comment-p><ul><li><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> <cite xml:lang="en-us">Corrigendum #4: Five Unihan Canonical Mapping Errors</cite> (<time>2011-04-01 06:49:26 +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://www.unicode.org/versions/corrigendum4.html">http://www.unicode.org/versions/corrigendum4.html</anchor-external></li></ul><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="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 今回は稀な文字だから問題ないなどという言い訳はありませんw</comment-p></section></section><section><h1>関連</h1><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> <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="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:">正準分解</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFC</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFD</anchor> で使われています。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準結合</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFC</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NFKC</anchor>
で使われています。</p></section></body></html>