<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet-Draft</anchor> draft-abela-utf9-00 <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="urn:ietf:id:draft-abela-utf9-00">urn:ietf:id:draft-abela-utf9-00</anchor-external>
で定義されていましたが、 expire されました。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> と似ていますが、 Latin-1 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC8859</anchor>-1)
の範囲の文字 (U+0000-U+007F, U+00A0-U+00FF) はそのままの値で
UTF-9 では表現されます。 UTF-8 とは違って、 0xA0-0xFF
のオクテットが1文字である可能性がありますから、文字の始まり
かどうかは前に戻らないと判断できません。</p><p>こうした欠点や既に UTF-8 が普及していたことから、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
protocols で使われることにはなりませんでした。</p><section><h1>構造</h1><pre> \R 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
 C\
 0 &lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;
 1 &lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;&lt;C&gt;
 2  SP !  &quot;  #  $  %  &amp;  '  (  )  *  +  ,  -  .  /
 3  0  1  2  3  4  5  6  7  8  9  :  ;  &lt;  =  &gt;  ?
 4  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O
 5  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^ '_
 6  `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o
 7  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~ DEL
 8  2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_ 2_
 9  3_ 3_ 3_ 3_ 4_ 4_ 4_ 4_ 5_ 5_ 5_ 5_ 5_ 5_ 5_ 5_
 A &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;
 B &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;
 C &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;
 D &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;
 E &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;
 F &lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;&lt;L&gt;</pre><pre> * &lt;C&gt;   Control Character (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C0</anchor>)
   &lt;L&gt;   Latin-1 character
    2_   1st octet of 2 octets
    3_   1st octet of 3 octets
    4_   1st octet of 4 octets
    5_   1st octet of 5 octets</pre><pre> * &lt;L&gt;, 2_, 3_, 4_, 5_ are also 2nd, 3rd, ... octet of
   multi-octets character.</pre><table><tbody><tr><td>UCS-4 value (hex)</td><td>UTF-9 octet stream (binary)</td></tr><tr><td>0000 0000-0000 007F</td><td>0xxxxxxx</td></tr><tr><td>0000 00A0-0000 00BF</td><td>101xxxxx</td></tr><tr><td>0000 00C0-0000 00FF</td><td>11xxxxxx</td></tr><tr><td>0000 0100-0000 07FF</td><td>1000xxxX 1xxxxxxx</td></tr><tr><td>0000 0800-0000 FFFF</td><td>100100Xx 1xxxxxxX 1xxxxxxx</td></tr><tr><td>0001 0000-007F FFFF</td><td>100101xx 1xxxxxXx 1xxxxxxX 1xxxxxxx</td></tr><tr><td>0080 0000-7FFF FFFF</td><td>10011xxx 1xxxxXxx 1xxxxxXx 1xxxxxxX 1xxxxxxx</td></tr></tbody></table><pre> x -&gt; bit
 X -&gt; MSB in UCS-4 octets</pre></section><section><h1>その他</h1><ul><li>2002-09-23 (Mon) 13:02:40 <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor></em> : <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> にかなり遅れてしかも欠点を加えた上に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Latin-1</anchor> 圏の身勝手にとられたのが痛い。</li><li>2002-09-23 (Mon) 13:03:40 <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor></em> : それを言うなら UTF-8 も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> 世界のわがままだけど、 ASCII は Latin1 より遥かに大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シェア</anchor>を持つからねぇ。</li><li>2002-09-23 (Mon) 13:05:50 <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor></em> : U+0080-U+009F を表現できないのも問題じゃない?</li><li>2002-09-23 (Mon) 13:06:39 <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor></em> : 2オクテット表現を使えばいいのか?</li></ul><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4042 UTF-9</anchor> とは異なります。</p></section></body></html>