OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man7 / utf-8.7
index 35d9c64..4b90cba 100644 (file)
 .\"         by Yuichi SATO <ysato@h4.dion.ne.jp>
 .\"
 .TH UTF-8 7 2001-05-11 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
-UTF-8 \- ASCII ¤È¸ß´¹À­¤Î¤¢¤ë¿¥Ð¥¤¥È Unicode ¤ÎÉä¹æ²½
-.SH ÀâÌÀ
-.B "¥æ¥Ë¥³¡¼¥É (Unicode) 3.0"
-ʸ»ú½¸¹ç¤Ï 16 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¡£
-ºÇ¤âñ½ã¤Ê Unicode ¤ÎÉä¹æ²½ÊýË¡
+.SH 名前
+UTF-8 \- ASCII と互換性のある多バイト Unicode の符号化
+.SH 説明
+.B "ユニコード (Unicode) 3.0"
+文字集合は 16 ビットのコード空間を占める。
+最も単純な Unicode の符号化方法
 .RB ( UCS-2 )
-¤Ç¤Ï¡¢Ê¸»ú¤Ï 16 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É (16 ¥Ó¥Ã¥Èʸ»ú¤ÎÎó) ¤Ç¹½À®¤µ¤ì¤ë¡£
-¤³¤ÎÎó¤Ë¤Ï¡¢
-\(aq\\0\(aq ¤ä \(aq/\(aq ¤Î¤è¤¦¤Ê (¥Õ¥¡¥¤¥ë̾¤ä C ¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î°ú¤­¿ô¤ÎÆâÉô¤Ç)
-Æüì¤Ê°ÕÌ£¤ò»ý¤Ä 16 ¥Ó¥Ã¥Èʸ»ú¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£
-¤µ¤é¤Ë¡¢¤Û¤È¤ó¤É¤Î UNIX ¥Ä¡¼¥ë¤Ï ASCII ¥Õ¥¡¥¤¥ë¤òÆþÎϤȤ·¤Æ´üÂÔ¤¹¤ë¤Î¤Ç¡¢
-ÂçÉý¤ÊÊѹ¹¤Ê¤·¤Ë¤Ï 16 ¥Ó¥Ã¥È¥ï¡¼¥É¤òʸ»ú¤È¤·¤ÆÆɤळ¤È¤¬¤Ç¤­¤Ê¤¤¡£
-¤³¤ì¤é¤ÎÍýͳ¤«¤é¡¢
+では、文字は 16 ビット・ワード (16 ビット文字の列) で構成される。
+この列には、
+\(aq\\0\(aq や \(aq/\(aq のような (ファイル名や C のライブラリ関数の引き数の内部で)
+特殊な意味を持つ 16 ビット文字が含まれることがある。
+さらに、ほとんどの UNIX ツールは ASCII ファイルを入力として期待するので、
+大幅な変更なしには 16 ビットワードを文字として読むことができない。
+これらの理由から、
 .B UCS-2
-¤Ï¥Õ¥¡¥¤¥ë̾¡¦¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¡¦´Ä¶­ÊÑ¿ô¤Ê¤É¤ËÍѤ¤¤ë¡¢³°ÉôÍѤÎ
+はファイル名・テキストファイル・環境変数などに用いる、外部用の
 .B Unicode
-Éä¹æ¤È¤·¤Æ¤ÏÉÔŬÀڤǤ¢¤ë¡£
-Unicode ¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤Ç¤¢¤ë
+符号としては不適切である。
+Unicode のスーパーセットである
 .B "ISO 10646 Universal Character Set (UCS)"
-¤Ï 31 ¥Ó¥Ã¥È¤Î¥³¡¼¥É¶õ´Ö¤òÀê¤á¤ë¤¬¡¢¤½¤ÎºÇ¤âñ½ã¤ÊÉä¹æ²½¤Ç¤¢¤ë
+は 31 ビットのコード空間を占めるが、その最も単純な符号化である
 .B UCS-4
-¤Ë¤â (32 ¥Ó¥Ã¥È¡¦¥ï¡¼¥É¤ÎÎó¤È¤·¤Æ) Æ±¤¸ÌäÂ꤬¤¢¤ë¡£
+にも (32 ビット・ワードの列として) 同じ問題がある。
 .PP
 .B Unicode
-¤È
+と
 .B UCS
-¤Î
+の
 .B UTF-8
-Éä¹æ²½¤Ë¤Ï¤³¤ì¤é¤ÎÌäÂ꤬¤Ê¤¤¤Î¤Ç¡¢UNIX ·Á¼°¤Î OS ¾å¤Ç
+符号化にはこれらの問題がないので、UNIX 形式の OS 上で
 .B Unicode
-ʸ»ú½¸¹ç¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î°ìÈÌŪ¤ÊÊýË¡¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
-.SS À­¼Á
+文字集合を使用するための一般的な方法となっている。
+.SS 性質
 .B UTF-8
-Éä¹æ²½¤Ï°Ê²¼¤Î¤è¤¦¤ÊÁÇÀ²¤·¤¤À­¼Á¤òÈ÷¤¨¤Æ¤¤¤ë:
+符号化は以下のような素晴しい性質を備えている:
 .TP 0.2i
 *
 .B UCS
-ʸ»ú¤Î¤¦¤Á 0x00000000 ¤«¤é 0x0000007f ¤Þ¤Ç (¸ÅŵŪ¤Ê
+文字のうち 0x00000000 から 0x0000007f まで (古典的な
 .B US-ASCII
-¤Îʸ»ú) ¤Ï (ASCII ¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë) Ã±½ã¤Ë 0x00 ¤«¤é 0x7f ¤Î¥Ð¥¤¥È¤Ë
-Éä¹æ²½¤¹¤ë¡£¤³¤ì¤Ï 7 ¥Ó¥Ã¥È ASCII Ê¸»ú¤Î¤ß¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤äʸ»úÎó¤Ë
-´Ø¤·¤Æ¤Ï¡¢
+の文字) は (ASCII との互換性のために) 単純に 0x00 から 0x7f のバイトに
+符号化する。これは 7 ビット ASCII 文字のみを含むファイルや文字列に
+関しては、
 .B ASCII
-¤È
+と
 .B UTF-8
-¤ÇƱ¤¸Éä¹æ²½¤ò¹Ô¤Ê¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+で同じ符号化を行なうことを意味する。
 .TP
 *
-0x7f ¤è¤êÂ礭¤¤¤Î¤¹¤Ù¤Æ¤Î
+0x7f より大きいのすべての
 .B UCS
-ʸ»ú¤Ï¡¢ 0x80 ¤«¤é 0xfd ¤Þ¤Ç¤ÎÈϰϤΥХ¤¥È¤Î¤ß¤ò´Þ¤à
-¿¥Ð¥¤¥Èʸ»úÎó¤ËÉä¹æ²½¤µ¤ì¤ë¡£
-¤·¤¿¤¬¤Ã¤Æʸ»úÎó¤Ë
-ASCII ¥Ð¥¤¥È¤¬´Þ¤Þ¤ì¤ë¤³¤È¤¬¤Ê¤¯¡¢\(aq\\0\(aq ¤ä \(aq/\(aq ¤ÎÌäÂê¤ÏȯÀ¸¤·¤Ê¤¤¡£
+文字は、 0x80 から 0xfd までの範囲のバイトのみを含む
+多バイト文字列に符号化される。
+したがって文字列に
+ASCII バイトが含まれることがなく、\(aq\\0\(aq や \(aq/\(aq の問題は発生しない。
 .TP
 *
 .B UCS-4
-ʸ»úÎó¤Ç¤Ï¼­½ñŪ¥½¡¼¥È¤Î½ç½ø¤¬Êݤ¿¤ì¤ë¡£
+文字列では辞書的ソートの順序が保たれる。
 .TP
 *
-2^31 ¥Ó¥Ã¥È¤Î¤¹¤Ù¤Æ¤Î UCS ¥³¡¼¥É ¤¬
+2^31 ビットのすべての UCS コード が
 .B UTF-8
-¤ò»ÈÍѤ·¤ÆÉä¹æ²½¤Ç¤­¤ë¡£
+を使用して符号化できる。
 .TP
 *
 .B UTF-8
-Éä¹æ²½¤Ç¤Ï 0xfe ¤È 0xff ¤Î¥Ð¥¤¥È¤ÏÀäÂФ˻ÈÍѤ·¤Ê¤¤¡£
+符号化では 0xfe と 0xff のバイトは絶対に使用しない。
 .TP
 *
-ASCII ¤Ç¤Ê¤¤
+ASCII でない
 .B UCS
-ʸ»ú¤Î¿¥Ð¥¤¥ÈÎó¤ÎºÇ½é¤Î¥Ð¥¤¥È¤Ï¡¢
-¾ï¤Ë 0xc0 ¤«¤é 0xfd ¤ÎÈϰϤÇɽ¸½¤µ¤ì¡¢
-¤½¤Îʸ»ú¤¬²¿¥Ð¥¤¥È¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤¹¡£
-¿¥Ð¥¤¥ÈÎó¤Î»Ä¤ê¤ÎÉôʬ¤Î¥Ð¥¤¥È¤Ï¡¢¤½¤ì¤¾¤ì 0x80 ¤«¤é 0xbf ¤ÎÈϰϤˤ¢¤ë¡£
-¤³¤ì¤Ë¤è¤êƱ´ü¤¬Íưפˤʤꡢ¥¹¥Æ¡¼¥È¥ì¥¹¤ÊÉä¹æ²½¤¬²Äǽ¤Ë¤Ê¤ê¡¢
-¥Ð¥¤¥È¤Îʶ¼º¤ËÂФ·¤Æ·ø¸Ç¤Ë¤Ê¤ë¡£
+文字の多バイト列の最初のバイトは、
+常に 0xc0 から 0xfd の範囲で表現され、
+その文字が何バイトで構成されているかを示す。
+多バイト列の残りの部分のバイトは、それぞれ 0x80 から 0xbf の範囲にある。
+これにより同期が容易になり、ステートレスな符号化が可能になり、
+バイトの紛失に対して堅固になる。
 .TP
 *
 .B UTF-8
-¤ò»ÈÍѤ·¤¿
+を使用した
 .B UCS
-ʸ»ú¤ÎÉä¹æ²½¤ÏºÇÂç 6 ¥Ð¥¤¥È¤ÎŤµ¤Ë¤Ê¤ë¡£
-¤·¤«¤·¡¢
+文字の符号化は最大 6 バイトの長さになる。
+しかし、
 .B Unicode
-µ¬³Ê¤Ç¤Ï 0x10ffff ¤è¤êÀè¤Îʸ»ú¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ç¡¢Unicode Ê¸»ú¤Ï
+規格では 0x10ffff より先の文字を指定しないので、Unicode 文字は
 .B UTF-8
-¤Ç¤Ï 4 ¥Ð¥¤¥È¤Þ¤Ç¤Ë¤·¤«¤Ê¤é¤Ê¤¤¡£
-.SS Éä¹æ²½
-°Ê²¼¤Î¥Ð¥¤¥ÈÎó¤¬Ê¸»ú¤Îɽ¸½¤Ë»ÈÍѤµ¤ì¤ë¡£
-¤É¤Î¥Ð¥¤¥ÈÎó¤ò»ÈÍѤ¹¤ë¤«¤Ïʸ»ú¤Î UCS ¥³¡¼¥ÉÈÖ¹æ¤Ë°Í¸¤¹¤ë:
+では 4 バイトまでにしかならない。
+.SS 符号化
+以下のバイト列が文字の表現に使用される。
+どのバイト列を使用するかは文字の UCS コード番号に依存する:
 .TP 0.4i
 0x00000000 \- 0x0000007F:
 .RI 0 xxxxxxx
@@ -164,133 +164,133 @@ ASCII 
 .RI 10 xxxxxx
 .PP
 .I xxx
-¥Ó¥Ã¥È¤ÎÉôʬ¤Ë¤Ï 2 ¿Ê¿ô¤Çɽ¤ï¤·¤¿Ê¸»ú¥³¡¼¥É¤Î¥Ó¥Ã¥ÈÉôʬ¤¬Âбþ¤¹¤ë¡£
-¤½¤Îʸ»ú¤òɽ¸½¤¹¤ë¤Î¤ËºÇ¤âû¤¤¥Ð¥¤¥ÈÎó¤Î¤ß¤¬»ÈÍѤǤ­¤ë¡£
+ビットの部分には 2 進数で表わした文字コードのビット部分が対応する。
+その文字を表現するのに最も短いバイト列のみが使用できる。
 .PP
-0xd800\(en0xdfff (UTF-16 ¥µ¥í¥²¡¼¥È) ¤ä
-0xfffe, 0xffff (UCS ¤Î noncharacter) ¤È¤¤¤¦
+0xd800\(en0xdfff (UTF-16 サロゲート) や
+0xfffe, 0xffff (UCS の noncharacter) という
 .B UCS
-¥³¡¼¥É¤ÎÃͤϡ¢
+コードの値は、
 .B UTF-8
-¤Ë½àµò¤·¤¿¥¹¥È¥ê¡¼¥à¤ËÆþ¤ì¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
-.SS Îã
+に準拠したストリームに入れるべきではない。
+.SS 
 .B Unicode
-ʸ»ú¤Î 0xa9 = 1010 1001 (¥³¥Ô¡¼¥é¥¤¥È¡¦¥Þ¡¼¥¯) ¤Ï UTF-8 ¤ÇÉä¹æ²½¤¹¤ë¤È
+文字の 0xa9 = 1010 1001 (コピーライト・マーク) は UTF-8 で符号化すると
 .sp
 .RS
 11000010 10101001 = 0xc2 0xa9
 .RE
 .sp
-¤Ë¤Ê¤ë¡£
+になる。
 .PP
-0x2260 = 0010 0010 0110 0000 (ÉÔÅù¹æ) ¤Ï
+0x2260 = 0010 0010 0110 0000 (不等号) は
 .sp
 .RS
 11100010 10001001 10100000 = 0xe2 0x89 0xa0
 .RE
 .sp
-¤Ë¤Ê¤ë¡£
-.SS ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤±¤ëÃí°Õ
-¥æ¡¼¥¶¡¼¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î
+になる。
+.SS アプリケーションにおける注意
+ユーザーはアプリケーションの
 .B UTF-8
-¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ
+サポートを有効にするために、以下のようにして
 .B UTF-8
-¥í¥±¡¼¥ë¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+ロケールを選択しなければならない。
 .PP
 .RS
 export LANG=en_GB.UTF-8
 .RE
 .PP
-»ÈÍѤµ¤ì¤Æ¤¤¤ëʸ»úÉä¹æ²½¤òʬ¤«¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢
-°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¾ï¤Ë¥í¥±¡¼¥ë¤òÀßÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£
+使用されている文字符号化を分かっていなければならない
+アプリケーションソフトウェアは、
+以下のようにして常にロケールを設定すべきである。
 .PP
 .RS
 setlocale(LC_CTYPE, "")
 .RE
 .PP
-¤Þ¤¿
+また
 .B UTF-8
-¥í¥±¡¼¥ë¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Æ¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤Îɸ½àÆþ½ÐÎÏ¡¦Ã¼Ëö´ÖÄÌ¿®¡¦
-¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¡¦¥Õ¥¡¥¤¥ë̾¡¦´Ä¶­ÊÑ¿ô¤¬
+ロケールが選択されていて、プレーンテキストの標準入出力・端末間通信・
+プレーンテキストファイルの内容・ファイル名・環境変数が
 .B UTF-8
-¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¤Ë¡¢
-¥×¥í¥°¥é¥Þ¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼°¤ò»î¤¹¤³¤È¤¬¤Ç¤­¤ë¡£
+で符号化されているかをチェックするために、
+プログラマーは以下のような式を試すことができる。
 .PP
 .RS
 strcmp(nl_langinfo(CODESET), "UTF-8") == 0
 .RE
 .PP
 .B US-ASCII
-¤ä
+や
 .B ISO 8859
-¤È¤¤¤Ã¤¿¥·¥ó¥°¥ë¥Ð¥¤¥È¤ÎÉä¹æ²½¤¬½¬´·¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢
-¤³¤ì¤Þ¤Ç¤Î 2 ¤Ä¤Î²¾Ä꤬
+といったシングルバイトの符号化が習慣になっているプログラマーは、
+これまでの 2 つの仮定が
 .B UTF-8
-¥í¥±¡¼¥ë¤Ë¤ª¤¤¤Æ¤ÏºÇÁáÍ­¸ú¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¤³¤È¤òÃΤäƤª¤¯¤Ù¤­¤À¡£
-1 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢1 ¥Ð¥¤¥È¤¬É¬¤º¤·¤â 1 ¤Ä¤Îʸ»ú¤ËÂбþ¤·¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£
-2 ÈÖÌܤÎÊѹ¹ÅÀ¤Ï¡¢ºÇ¶á¤ÎüËö¥¨¥ß¥å¥ì¡¼¥¿¤Ï
+ロケールにおいては最早有効ではなくなったことを知っておくべきだ。
+1 番目の変更点は、1 バイトが必ずしも 1 つの文字に対応しないという点である。
+2 番目の変更点は、最近の端末エミュレータは
 .B UTF-8
-¥â¡¼¥É¤Ë¤ª¤¤¤ÆÃæ¹ñ¸ì¡¦ÆüËܸ졦´Ú¹ñÄ«Á¯¸ì¤Î
-.B Á´³Ñʸ»ú
-¤ä¥¹¥Ú¡¼¥¹¤¬Æþ¤é¤Ê¤¤ (nonspacing)
-.B "¹çÀ®Ê¸»ú (combining characters)"
-¤ËÂбþ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢
+モードにおいて中国語・日本語・韓国朝鮮語の
+.B 全角文字
+やスペースが入らない (nonspacing)
+.B "合成文字 (combining characters)"
+に対応しているので、
 .B ASCII
-¤Î¤È¤­¤Î¤è¤¦¤Ë 1 Ê¸»ú½ÐÎϤ·¤¿¸å¤Ç
-¥«¡¼¥½¥ë¤òɬ¤º¤·¤â 1 ¤Ä¤À¤±¿Ê¤á¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦ÅÀ¤Ç¤¢¤ë¡£
-º£Æü¤Ç¤Ï¡¢Ê¸»ú¤ä¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¿ô¤¨¤ë¤Î¤Ë
+のときのように 1 文字出力した後で
+カーソルを必ずしも 1 つだけ進めるわけではないという点である。
+今日では、文字やカーソルの位置を数えるのに
 .BR mbsrtowcs (3)
-¤ä
+や
 .BR wcswidth (3)
-¤È¤¤¤Ã¤¿¥é¥¤¥Ö¥é¥ê´Ø¿ô¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£
+といったライブラリ関数を使うべきである。
 .PP
-(VT100 Ã¼Ëö¤Ê¤É¤Ç»È¤ï¤ì¤ë)
+(VT100 端末などで使われる)
 .B ISO 2022
-Éä¹æ²½·Á¼°¤«¤é
+符号化形式から
 .B UTF-8
-¤ØÀÚÂؤ¨¤ë¸ø¼°¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï ESC % G ("\\x1b%G") ¤Ç¤¢¤ë¡£
-¤³¤ì¤ËÂбþ¤¹¤ë
+へ切替える公式なエスケープシーケンスは ESC % G ("\\x1b%G") である。
+これに対応する
 .B UTF-8
-¤«¤é
+から
 .B ISO 2022
-¤Ø¤Î¥ê¥¿¡¼¥ó¥·¡¼¥±¥ó¥¹¤Ï ESC % @ ("\\x1b%@") ¤Ç¤¢¤ë¡£
-(G0 ¥»¥Ã¥È¤È G1 ¥»¥Ã¥È¤òÀÚÂؤ¨¤ë¤È¤¤¤Ã¤¿)
-¤½¤Î¾¤Î ISO 2022 ¥·¡¼¥±¥ó¥¹¤Ï¡¢UTF-8 ¥â¡¼¥É¤Ç¤Ï»È¤¨¤Ê¤¤¡£
+へのリターンシーケンスは ESC % @ ("\\x1b%@") である。
+(G0 セットと G1 セットを切替えるといった)
+その他の ISO 2022 シーケンスは、UTF-8 モードでは使えない。
 .PP
-ͽÃΤǤ­¤ë¾­Íè¤Ç¤Ï¡¢POSIX ¥·¥¹¥Æ¥à¾å¤Î°ìÈÌŪ¤Êʸ»úÉä¹æ²½¤ÎÁ´¤Æ¤Î¥ì¥Ù¥ë¤Ç
+予知できる将来では、POSIX システム上の一般的な文字符号化の全てのレベルで
 .B UTF-8
-¤¬
+が
 .B ASCII
-¤È
+と
 .B ISO 8859
-¤òÃÖ¤­´¹¤¨¡¢¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È¤ò°·¤¦Èó¾ï¤ËÍ¥¤ì¤¿´Ä¶­¤¬ºî¤é¤ì¤ë¤³¤È¤¬´üÂԤǤ­¤ë¡£
-.SS ¥»¥­¥å¥ê¥Æ¥£
-.BR Unicode " ¤È " UCS
-¤Îµ¬³Ê¤Ç¤Ï¡¢
+を置き換え、プレーンテキストを扱う非常に優れた環境が作られることが期待できる。
+.SS ã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£
+.BR Unicode "  " UCS
+の規格では、
 .B UTF-8
-¤ÎÀ¸À®¼Ô¤Ï¤Ç¤­¤ë¤À¤±Ã»¤¤·Á¼°¤òÍѤ¤¤ë¤è¤¦Í׵ᤷ¤Æ¤¤¤ë¡£
-Î㤨¤Ð¡¢ÀèƬ¥Ð¥¤¥È¤¬ 0xc0 ¤Ç¤¢¤ë¤è¤¦¤Ê 2 ¥Ð¥¤¥ÈÎó¤ò
-À¸À®¤¹¤ë¤Î¤Ï½àµò¤·¤Æ¤¤¤ë¤È¤Ï¤¤¤¨¤Ê¤¤¡£
+の生成者はできるだけ短い形式を用いるよう要求している。
+例えば、先頭バイトが 0xc0 であるような 2 バイト列を
+生成するのは準拠しているとはいえない。
 .B Unicode 3.1
-¤Ç¤Ï¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Ï
-ºÇû¤Îɽ¸½·Á¼°¤Ç¤Ï¤Ê¤¤ÆþÎϤò¼õ¤±ÉÕ¤±¤Ê¤¤¡¢¤È¤¤¤¦Í×µá»ö¹à¤¬Äɲ䵤줿¡£
-¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ë¤è¤ë¡£
-¥æ¡¼¥¶¡¼ÆþÎϤ¬¥»¥­¥å¥ê¥Æ¥£¾å¤Î´í¸±¤ËÂФ·¥Á¥§¥Ã¥¯¤µ¤ì¤ë¾ì¹ç¡¢
-¥×¥í¥°¥é¥à¤Ï
+では、規格に準拠するプログラムは
+最短の表現形式ではない入力を受け付けない、という要求事項が追加された。
+これはセキュリティ上の理由による。
+ユーザー入力がセキュリティ上の危険に対しチェックされる場合、
+プログラムは
 .B ASCII
-ÈǤΠ"/../" ¤ä ";" ¤ä "NUL" ¤À¤±¤ò¥Á¥§¥Ã¥¯¤·¡¢
-ºÇû¤ËÉä¹æ²½¤µ¤ì¤Æ¤Ê¤¤¤³¤ì¤é¤Îʸ»ú¤ò¸«²á¤´¤·¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
-¤Ê¤¼¤Ê¤é¡¢ºÇû¤Ç¤Ï¤Ê¤¤
+版の "/../" や ";" や "NUL" だけをチェックし、
+最短に符号化されてないこれらの文字を見過ごしてしまうかもしれないからである。
+なぜなら、最短ではない
 .B UTF-8
-Éä¹æ²½¤Ç¤Ï¡¢¤³¤ì¤é¤Îʸ»ú¤òɽ¸½¤¹¤ë¤è¤¦¤ÊÍÍ¡¹¤Ê
+符号化では、これらの文字を表現するような様々な
 .B ASCII
-°Ê³°¤Î·Á¼°¤¬Â¸ºß¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
-.SS ½àµò
+以外の形式が存在するためである。
+.SS 準拠
 ISO/IEC 10646-1:2000, Unicode 3.1, RFC\ 2279, Plan 9.
-.\" .SH Ãø¼Ô
+.\" .SH 著者
 .\" Markus Kuhn <mgk25@cl.cam.ac.uk>
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR nl_langinfo (3),
 .BR setlocale (3),
 .BR charsets (7),