EUC(4) FreeBSD カーネルインタフェースマニュアル EUC(4)
名称
euc − EUC エンコーディング |
書式
ENCODING "EUC" |
VARIABLE len1 mask1 len2 mask2 len3 mask3 len4 mask4 mask |
説明 |
EUC エンコーディングは、 UNIX ベースのシステムとの互換性を保つために提供 されています。 LC_TYPE ソースファイルのフォーマットに関する完全な説明を求 めるなら、 mklocale(1) を参照してください。 EUC は、4 つのマルチバイトコードセットを実装しています。 1 番目のコード セット中のマルチバイト文字は、0x00 から 0x7f までの範囲の 1 バイトから始 まる len1 バイトのデータで構成されています。 ASCII 文字が使えるようにする ため、 len1 は常に 1 です。 2 番目のコードセット中のマルチバイト文字は、 0x8e と 0x8f を除いた 0x80 から 0xff までの範囲の 1 バイトから始まる len2 バイトのデータで構成されています。 3 番目のコードセット中のマルチバイト文 字は、 1 バイト目が 0x8e で始まる len3 バイトのデータで構成されています。 4 番目のコードセット中のマルチバイト文字は、 1 バイト目が 0x8f で始まる len4 バイトのデータで構成されています。 EUC マルチバイト文字の rune_t エンコーディングは len および mask 引数に依 存しています。はじめに、各バイトは次のような式で rune_t に変換されます。 byte0 << ((lenN-1) * 8) | byte1 << ((lenN-2) * 8) | ... | bytelenN-1 そして、この結果を ~mask と AND をとり、 maskN と OR をとります。コード セット 2 および 3 は処理が特殊で、最初に先頭バイト (0x8e あるいは 0x8f) を削除し、 lenN 引数の値を 1 減らします。 例えば、日本語ロケールは次のような VARIABLE 行を持っています。 VARIABLE 1 0x0000 2 0x8080 2 0x0080 3 0x8000 0x8080 コードセット 1 は、0x0000 から 0x007f までの値で構成されています。 コードセット 2 は 0x8080 ビットがセットされた値で構成されています。 コードセット 3 は 0x0080 から 0x00ff までの 値で構成されています。 コードセット 4 は 0x0080 ビットがセットされた値を除いた 0x8000 から 0xff7f までの値で構成されています。 グローバルな mask 値は、0x8080 にセットされることに注意してください。これ は、この 2 ビットからコードセットが決定されるということを示しています。 |
例 - 日本語ロケール
以下に示す例は、日本語ロケール用の LC_CTYPE ソースファイルの完全な例で す。 /* * JIS 文字集合の EUC を用いた日本語 LOCALE_CTYPE の定義 */ |
ENCODING |
"EUC" |
||||||||
/* |
JIS |
JIS |
JIS |
*/ |
|||||
/* |
X201 |
X208 |
X201 |
*/ |
|||||
/* |
00-7f |
84-fe |
*/ |
||||||
VARIABLE |
1 0x0000 2 0x8080 2 0x0080 3 0x8000 0x8080 |
/* |
ALPHA |
’A’ - ’Z’ ’a’ - ’z’ |
|||
CONTROL |
0x00 - 0x1f 0x7f |
|||
DIGIT |
’0’ - ’9’ |
|||
GRAPH |
0x21 - 0x7e |
|||
LOWER |
’a’ - ’z’ |
|||
PUNCT |
0x21 - 0x2f 0x3a - 0x40 0x5b - 0x60 0x7b - 0x7e |
|||
SPACE |
0x09 - 0x0d 0x20 |
|||
UPPER |
’A’ - ’Z’ |
|||
XDIGIT |
’a’ - ’f’ ’A’ - ’F’ |
|||
BLANK |
’ ’ ’’ |
|||
|
0x20 - 0x7e |
|||
MAPLOWER |
< ’A’ - ’Z’ : ’a’ > < ’a’ - ’z’ : ’a’ > |
|||
MAPUPPER |
< ’A’ - ’Z’ : ’A’ > < ’a’ - ’z’ : ’A’ > |
|||
TODIGIT |
< ’0’ - ’9’ : 0 > |
|||
TODIGIT |
< ’A’ - ’F’ : 10 > < ’a’ - ’f’ : 10 > |
/* |
SPACE |
0xa1a1 |
|||||||||
PHONOGRAM |
0xa1bc |
|||||||||
SPECIAL |
0xa1a2 - 0xa1fe |
|||||||||
PUNCT |
0xa1a2 - 0xa1f8 |
/* ここに書くことはたくさんありすぎます */ |
||||||||
SPECIAL |
0xa2a1 - 0xa2ae 0xa2ba - 0xa2c1 0xa2ca - 0xa2d0 0xa2dc - 0xa2ea |
|||||||||
SPECIAL |
0xa2f2 - 0xa2f9 0xa2fe |
|||||||||
DIGIT |
0xa3b0 - 0xa3b9 |
|||||||||
UPPER |
0xa3c1 - 0xa3da |
/* ローマ字 */ |
||||||||
LOWER |
0xa3e1 - 0xa3fa |
/* ローマ字 */ |
||||||||
MAPLOWER |
< 0xa3c1 - 0xa3da : 0xa3e1 > |
/* 英字 */ |
||||||||
MAPLOWER |
< 0xa3e1 - 0xa3fa : 0xa3e1 > |
/* 英字 */ |
||||||||
MAPUPPER |
< 0xa3c1 - 0xa3da : 0xa3c1 > |
|||||||||
MAPUPPER |
< 0xa3e1 - 0xa3fa : 0xa3c1 > |
|||||||||
XDIGIT |
0xa3c1 - 0xa3c6 0xa3e1 - 0xa3e6 |
|||||||||
TODIGIT |
< 0xa3b0 - 0xa3b9 : 0 > |
|||||||||
TODIGIT |
< 0xa3c1 - 0xa3c6 : 10 > < 0xa3e1 - 0xa3e6 : 10 > |
|||||||||
PHONOGRAM |
0xa4a1 - 0xa4f3 |
|||||||||
PHONOGRAM |
0xa5a1 - 0xa5f6 |
|||||||||
UPPER |
0xa6a1 - 0xa6b8 |
/* ギリシャ文字 */ |
||||||||
LOWER |
0xa6c1 - 0xa6d8 |
/* ギリシャ文字 */ |
||||||||
MAPLOWER |
< 0xa6a1 - 0xa6b8 : 0xa6c1 > < 0xa6c1 - 0xa6d8 : 0xa6c1 > |
|||||||||
MAPUPPER |
< 0xa6a1 - 0xa6b8 : 0xa6a1 > < 0xa6c1 - 0xa6d8 : 0xa6a1 > |
|||||||||
UPPER |
0xa7a1 - 0xa7c1 |
/* キリル文字 */ |
||||||||
LOWER |
0xa7d1 - 0xa7f1 |
/* キリル文字 */ |
||||||||
MAPLOWER |
< 0xa7a1 - 0xa7c1 : 0xa7d1 > < 0xa7d1 - 0xa7f1 : 0xa7d1 > |
|||||||||
MAPUPPER |
< 0xa7a1 - 0xa7c1 : 0xa7a1 > < 0xa7d1 - 0xa7f1 : 0xa7a1 > |
|||||||||
SPECIAL |
0xa8a1 - 0xa8c0 |
|||||||||
IDEOGRAM |
0xb0a1 - 0xb0fe 0xb1a1 - 0xb1fe 0xb2a1 - 0xb2fe |
|||||||||
IDEOGRAM |
0xb3a1 - 0xb3fe 0xb4a1 - 0xb4fe 0xb5a1 - 0xb5fe |
|||||||||
IDEOGRAM |
0xb6a1 - 0xb6fe 0xb7a1 - 0xb7fe 0xb8a1 - 0xb8fe |
|||||||||
IDEOGRAM |
0xb9a1 - 0xb9fe 0xbaa1 - 0xbafe 0xbba1 - 0xbbfe |
|||||||||
IDEOGRAM |
0xbca1 - 0xbcfe 0xbda1 - 0xbdfe 0xbea1 - 0xbefe |
|||||||||
IDEOGRAM |
0xbfa1 - 0xbffe 0xc0a1 - 0xc0fe 0xc1a1 - 0xc1fe |
|||||||||
IDEOGRAM |
0xc2a1 - 0xc2fe 0xc3a1 - 0xc3fe 0xc4a1 - 0xc4fe |
|||||||||
IDEOGRAM |
0xc5a1 - 0xc5fe 0xc6a1 - 0xc6fe 0xc7a1 - 0xc7fe |
|||||||||
IDEOGRAM |
0xc8a1 - 0xc8fe 0xc9a1 - 0xc9fe 0xcaa1 - 0xcafe |
|||||||||
IDEOGRAM |
0xcba1 - 0xcbfe 0xcca1 - 0xccfe 0xcda1 - 0xcdfe |
|||||||||
IDEOGRAM |
0xcea1 - 0xcefe 0xcfa1 - 0xcfd3 0xd0a1 - 0xd0fe |
|||||||||
IDEOGRAM |
0xd1a1 - 0xd1fe 0xd2a1 - 0xd2fe 0xd3a1 - 0xd3fe |
|||||||||
IDEOGRAM |
0xd4a1 - 0xd4fe 0xd5a1 - 0xd5fe 0xd6a1 - 0xd6fe |
|||||||||
IDEOGRAM |
0xd7a1 - 0xd7fe 0xd8a1 - 0xd8fe 0xd9a1 - 0xd9fe |
|||||||||
IDEOGRAM |
0xdaa1 - 0xdafe 0xdba1 - 0xdbfe 0xdca1 - 0xdcfe |
|||||||||
IDEOGRAM |
0xdda1 - 0xddfe 0xdea1 - 0xdefe 0xdfa1 - 0xdffe |
|||||||||
IDEOGRAM |
0xe0a1 - 0xe0fe 0xe1a1 - 0xe1fe 0xe2a1 - 0xe2fe |
|||||||||
IDEOGRAM |
0xe3a1 - 0xe3fe 0xe4a1 - 0xe4fe 0xe5a1 - 0xe5fe |
|||||||||
IDEOGRAM |
0xe6a1 - 0xe6fe 0xe7a1 - 0xe7fe 0xe8a1 - 0xe8fe |
|||||||||
IDEOGRAM |
0xe9a1 - 0xe9fe 0xeaa1 - 0xeafe 0xeba1 - 0xebfe |
|||||||||
IDEOGRAM |
0xeca1 - 0xecfe 0xeda1 - 0xedfe 0xeea1 - 0xeefe |
|||||||||
IDEOGRAM |
0xefa1 - 0xeffe 0xf0a1 - 0xf0fe 0xf1a1 - 0xf1fe |
|||||||||
IDEOGRAM |
0xf2a1 - 0xf2fe 0xf3a1 - 0xf3fe 0xf4a1 - 0xf4a4 |
/* |
SPECIAL |
0xa1 - 0xdf |
|||
PHONOGRAM |
0xa1 - 0xdf |
|||
CONTROL |
0x84 - 0x97 0x9b - 0x9f 0xe0 - 0xfe |
関連項目
FreeBSD 10.0 June 4, 1993 FreeBSD 10.0 |