名 前
charsets − 文 字 集 合 の 標 準 と 国 際 化
説 明
こ の マ ニ ュ ア ル ペ ー ジ で は 、 様 々 な 文 字 集 合 標 準 の 概 要 と 、 Unicode が 広 く 使 わ れ る よ う に な る 前 に こ れ ら の 文 字 集 合 が Linux で ど の よ う に 使 わ れ て い た か を 説 明 す る 。 こ の 情 報 の 中 に は 、 以 前 か ら あ る シ ス テ ム や ド キ ュ メ ン ト を 扱 う 人 々 に と っ て は 今 も 役 立 つ こ と だ ろ う 。 こ こ で 扱 う 標 準 と し て は ASCII, GB 2312, ISO 8859, JIS, KOI8−R, KS, Unicode が あ る 。 主 な 対 象 は ロ ケ ー ル 文 字 集 合 で 実 際 に 使 用 さ れ て い た 文 字 集 合 に つ い て で あ り 、 他 の シ ス テ ム で 作 成 さ れ た デ ー タ で 使 わ れ て い た 無 数 の 他 の 文 字 集 合 に つ い て で は な い 。
ASCII
ASCII (American Standard Code For Information Interchange)
は 7 ビ ッ ト 文
字 集 合 の 元 と
な っ た も の で
あ り 、 も と も
と は 米 語 (American English)
の た め に デ ザ
イ ン さ れ た 。
US−ASCII と も 呼 ば れ
る 。 現 在 は 、 ISO
646:1991 IRV (International Reference Version) 標
準 で 説 明 さ れ
て い る 。 ド イ
ツ 語 、 フ ラ ン
ス 語 、 ス ペ イ
ン 語 な ど に 7 ビ
ッ ト で 対 応 す
る た め 、 ASCII の ド
ル 記 号 を 他 の
通 貨 記 号 に 置
き 換 え 、 句 読
点 を 非 英 語 文
字 の も の に 置
き 換 え た 様 々
な 変 種 が 登 場
し た 。 こ れ ら
は す べ て 非 推
奨 で あ る 。 glibc は
ASCII の 完 全 な ス ー
パ ー セ ッ ト で
な い 文 字 セ ッ
ト の ロ ケ ー ル
に 対 応 し て い
な い 。
UTF−8 を 使 う 場 合 、 Unicode は ASCII と 互 換 性 が あ る の で 、 通 常 の ASCII テ キ ス ト は 新 し い UTF−8 を 使 っ た シ ス テ ム で も そ の ま ま 正 し く 表 示 す る こ と が で き る 。
ISO 8859
ISO 8859 は 15 組 の 一 連
の 8 ビ ッ ト 文 字
集 合 で あ る 。
ど の 文 字 集 合
も 下 位 (7 ビ ッ ト )
に ASCII を 含 み 、 128
か ら 159 に は 制 御
文 字 が 配 置 さ
れ 、 160 か ら 255 に
は 96 個 の 固 定 幅
図 形 文 字 が 配
置 さ れ て い る
。 こ れ ら の う
ち 、 最 も 重 要
な の は ISO 8859−1 ("Latin
Alphabet No .1" / Latin−1) で あ
る 。 ISO 8859−1 は 広
く 採 用 さ れ 、
様 々 な シ ス テ
ム で サ ポ ー ト
さ れ て い た が
、 徐 々 に Unicode で
置 き 換 え れ て
い る 。 ISO 8859−1 文
字 集 合 は Unicode の
最 初 の 256 文 字 で
も あ る 。 コ ン
ソ ー ル に お け
る 、 そ の 他 の 8859
文 字 集 合 の サ
ポ ー ト は (setfont(8))
の よ う な ユ ー
ザ ー モ ー ド ユ
ー テ ィ リ テ ィ
を 利 用 す る 事
で 可 能 に な る
。 こ の よ う な
ユ ー テ ィ リ テ
ィ を 利 用 す る
こ と に よ り 、
コ ン ソ ー ル ド
ラ イ バ に お け
る キ ー ボ ー ド
と EGA グ ラ フ ィ ッ
ク テ ー ブ ル の
割 り 当 て を 変
更 し 、 "ユ ー ザ
ー 割 り 当 て (user
mapping)"フ ォ ン ト テ
ー ブ ル を 使 用
す る こ と が で
き る 。 以 下 は
、 そ れ ぞ れ の
集 合 の 簡 単 な
説 明 で あ る 。
8859−1 (Latin−1)
Latin−1 は ア ル バ ニ ア 語 (Albanian)、 バ ス ク 語 (Basque)、 デ ン マ ー ク 語 (Danish)、 英 語 (English)、 フ ェ ロ ー 語 (Faroese)、 ガ リ シ ア 語 (Galician)、 ア イ ス ラ ン ド 語 (Icelandic)、 ア イ ル ラ ン ド 語 (Irish)、 イ タ リ ア 語 (Italian)、 ノ ル ウ ェ ー 語 (Norwegian)、 ポ ル ト ガ ル 語 (Portuguese)、 ス ペ イ ン 語 (Spanish)、 ス ウ ェ ー デ ン 語 (Swedish) と い っ た 多 く の 西 ヨ ー ロ ッ パ 言 語 を カ バ ー す る 。 オ ラ ン ダ 語 の IJ/ij や フ ラ ン ス 語 の œ と い っ た 合 字 や 古 い ス タ イ ル の „German“ 引 用 符 が 欠 け て い る 点 は 以 前 は 許 容 範 囲 と 考 え ら れ て い た 。
8859−2 (Latin−2)
Latin−2 は 、 ボ ス ニ ア 語 (Bosnian)、 ク ロ ア チ ア 語 (Croatian)、 チ ェ コ 語 (Czech)、 ド イ ツ 語 (German)、 ハ ン ガ リ ー 語 (Hungarian)、 ポ ー ラ ン ド 語 (Polish)、 ス ロ ヴ ァ キ ア 語 (Slovak)、 ス ロ ベ ニ ア 語 (Slovene) と い っ た 、 ラ テ ン 文 字 を 書 き 文 字 と し て 使 用 す る 多 く の 中 央 、 東 ヨ ー ロ ッ パ の 言 語 を サ ポ ー ト す る 。 以 前 は 、 ル ー マ ニ ア 語 の ș/ț を ş/ţ で 置 き 換 え る の は 許 容 範 囲 と 考 え ら れ て い た 。
8859−3 (Latin−3)
Latin−3 は 、 エ ス ペ ラ ン ト 語 (Esperanto)、 マ ル タ 語 (Maltese)、 ト ル コ 語 (Turkish) に 対 応 す る た め に 設 計 さ れ た が 、 ト ル コ 語 に 関 し て は 後 に 8859−9 に 取 っ て 代 わ ら れ た 。
8859−4 (Latin−4)
Latin−4 は 、 エ ス ト ニ ア 語 (Estonian)、 ラ ト ビ ア 語 (Latvian)、 リ ト ア ニ ア 語 (Lithuanian) と い っ た 北 ヨ ー ロ ッ パ の 言 語 の 文 字 を 提 供 し て い た が 、 8859−10 と 8859−13 に 取 っ て 代 わ ら れ た 。
8859−5 ブ ル ガ リ ア 語 |
(Bulgarian)、 ベ ラ ル ー シ 語 (Byelorussian)、 マ ケ ド ニ |
ア 語 (Macedonian)、 ロ シ ア 語 (Russian)、 セ ル ビ ア 語 (Serbian) を サ ポ ー ト し 、 ウ ク ラ イ ナ 語 (Ukrainian) を (ほ ぼ 完 全 に ) サ ポ ー ト す る キ リ ル 文 字 集 合 で あ る 。 こ の 文 字 集 合 が 広 く 使 わ れ た こ と は な か っ た 。 下 の KOI8−R/KOI8−U に 関 す る 議 論 を 参 照 の こ と 。
8859−6 ア ラ ビ ア 語 |
(Arabic) を サ ポ ー ト す る た め に 作 成 さ れ た 。 8859−6 の グ |
リ フ テ ー ブ ル (glyph table) は 文 字 の 形 態 を 分 割 し た 固 定 幅 フ ォ ン ト で あ る 。 そ の た め 、 適 切 な デ ィ ス プ レ イ エ ン ジ ン と 組 み 合 わ せ 、 正 し い initial, medial, final フ ォ ー ム に 結 合 し な け れ ば な ら な い 。
8859−7 現 代 ギ リ シ ャ 語 用 と し て |
1987 年 に 作 成 さ れ 、 2003 年 に 更 新 さ れ た 。 | ||
8859−8 |
niqud (句 読 点 記 号 ) の な い 現 代 ヘ ブ ラ イ 語 (Hebrew) を サ ポ ー ト す る 。 niqud と 完 全 な 聖 書 風 ヘ ブ ラ イ 語 (Biblical Hebrew) は こ の 文 字 セ ッ ト の 対 象 外 で あ る 。
8859−9 (Latin−5)
こ れ は 、 Latin−1 の
変 種 で 、 ア イ
ス ラ ン ド 語 の
文 字 を ト ル コ
語 (Turkish)文 字 に 置
き 換 え た も の
で あ る 。
8859−10 (Latin−6)
Latin−6 は 、 北 欧 (Nordic) 地 域 を 完 全 に カ バ ー す る た め に Latin−4 に は 含 ま れ て い な い イ ヌ イ ッ ト 語 (Inuit) (グ リ ー ン ラ ン ド 語 (Greenlandic)) と サ ー メ 語 (Sami) (ラ ッ プ 語 (Lappish)) を 追 加 し て い た 。
8859−11 タ イ
語 の ア ル フ ァ
ベ ッ ト を サ ポ
ー ト し 、 TIS−620 標
準 と ほ と ん ど
同 一 で あ る 。
8859−12 こ の 文 字 集
合 は 存 在 し な
い 。
8859−13 (Latin−7) バ ル ト
海 諸 国 の 言 語
を サ ポ ー ト す
る 。 特 に 、 Latin−4
に 存 在 し な い
ラ ト ビ ア 語 の
文 字 を 含 む 。
8859−14 (Latin−8) こ れ は
、 ケ ル ト 語 の
文 字 セ ッ ト で
あ り 、 古 代 ア
イ ル ラ ン ド 語 (Old
Irish)、 マ ン 島 語
(Manx)、 ゲ ー ル 語
(Gaelic)、 ウ ェ ー ル
ズ 語 (Welsh)、 コ ー ン
ウ ォ ー ル 語
(Cornish)、 ブ ル タ ー
ニ ュ 語 (Breton) に 対
応 す る 。
8859−15 (Latin−9)
Latin−9 は 、 広 く 使 用 さ れ て い る Latin−1 に 似 て い る が 、 い く つ か の あ ま り 使 用 さ れ な い シ ン ボ ル を 、 ユ ー ロ 記 号 と Latin−1 に 入 っ て い な い フ ラ ン ス 語 と フ ィ ン ラ ン ド 語 の 文 字 に 置 き 換 え て い る 。
8859−16 (Latin−10) こ の 文 字 セ ッ ト は 多 く の 東 南 ヨ ー ロ ッ パ の 言 語 に 対 応 し て お り 、 も っ と も 重 要 な の は ル ー マ ニ ア 語 に は よ り 完 全 に 対 応 し て い る 点 で あ る 。
KOI8−R
/ KOI8−U
KOI8−R は 、 Unicode の 前
に 、 ロ シ ア に
お い て よ く 用
い ら れ た ISO で な
い 文 字 集 合 で
あ る 。 下 位 半
分 は ASCII で あ る 。
上 位 半 分 は ISO
8859−5 よ り い く ら
か よ く 設 計 さ
れ た キ リ ル 文
字 集 合 で あ る
。 KOI8−U は KOI8−R を
元 に し て お り
、 ウ ク ラ イ ナ
語 (Ukrainian) へ の 対 応
が よ り 良 い も
の に な っ て い
る 。 こ れ ら の
文 字 集 合 は ど
ち ら も 、 ISO−8859 系
列 と は 違 い 、
ISO−2022 と の 互 換 性
は な い 。
Linux で の KOI8−R の コ ン ソ ー ル サ ポ ー ト は 、 ユ ー ザ ー モ ー ド の ユ ー テ ィ リ テ ィ で 実 現 さ れ て い る 。 こ れ は キ ー ボ ー ド の 割 り 当 て と EGA グ ラ フ ィ ッ ク テ ー ブ ル を 変 更 し 、 コ ン ソ ー ル ド ラ イ バ の フ ォ ン ト テ ー ブ ル に "ユ ー ザ ー 割 り 当 て " を 行 う 。
GB 2312
GB 2312 は 、 簡 体 文
字 を 表 現 す る
た め の 中 国 の
国 定 標 準 文 字
セ ッ ト で あ る
。 JIS X 0208 と 同 様 に
、 文 字 は 94x94 の 2
バ イ ト マ ト リ
ッ ク ス に 配 置
さ れ 、 EUC−CN に 用
い ら れ る 。 EUC−CN
は Linux に お い て 最
も 重 要 な エ ン
コ ー デ ィ ン グ
で あ り 、 ASCII と GB 2312
を 含 ん で い る
。 EUC−CN は し ば し
ば GB, GB 2312, CN−GN な ど と
呼 ば れ る 。
Big5
Big5 は 台 湾 で 繁 体
文 字 を 記 述 す
る の に 一 般 的
に 使 わ れ る 文
字 セ ッ ト で あ
っ た 。 (Big5 は 文 字
セ ッ ト と エ ン
コ ー デ ィ ン グ
の 両 方 で あ る
。 ) こ れ は US ASCII の
上 位 集 合 で あ
る 。 非 ASCII 文 字 は
2 バ イ ト で 表 現
す る 。 0xa1−0xfe の バ
イ ト は 2 バ イ ト
文 字 の 1 文 字 目
と し て 用 い る
。 Big5 と そ の 拡 張
は 台 湾 と 香 港
で 広 く 用 い ら
れ て い た 。 こ
れ は ISO 2022 準 拠 で
は な い 。
JIS X
0208
JIS X 0208 は 日 本 語 の
国 定 標 準 文 字
セ ッ ト で あ る
。 他 に も い く
つ か 日 本 語 の
国 定 標 準 文 字
セ ッ ト は あ る (JIS X
0201, JIS X 0212, JIS X 0213 な ど ) が
、 こ れ が 最 も
重 要 で あ る 。
文 字 は 94x94 の 2 バ
イ ト マ ト リ ッ
ク ス に 配 置 さ
れ る 。 各 バ イ
ト は 0x21−0x7e の 値 を
持 つ 。 JIS X 0208 は 文
字 セ ッ ト で あ
り 、 エ ン コ ー
デ ィ ン グ で は
な い こ と に 注
意 す る こ と 。
こ れ は 、 JIS X 0208 自
身 は テ キ ス ト
デ ー タ の 表 現
に は 使 わ れ な
い 、 と い う こ
と で あ る 。 JIS X 0208
は 、 EUC−JP, Shift_JIS,
ISO−2022−JP と い っ た
エ ン コ ー デ ィ
ン グ を 構 成 す
る 部 品 と し て
用 い ら れ る 。
EUC−JP が Linux に お い
て 最 も 重 要 な
エ ン コ ー デ ィ
ン グ で あ り 、 ASCII
と JIS X 0208 を 含 ん で
い る 。 EUC−JP で は
、 JIS X 0208 文 字 は 2 バ
イ ト で 表 現 さ
れ 、 各 バ イ ト
は JIS X 0208 コ ー ド に 0x80
を 加 え た も の
で あ る 。
KS X
1001
KS X 1001 は 韓 国 の 国
定 標 準 文 字 セ
ッ ト で あ る 。 JIS X
0208 と 同 様 に 、 文
字 は 94x94 の 2 バ イ
ト マ ト リ ッ ク
ス に 配 置 さ れ
る 。 KS X 1001 は JIS X 0208 と
同 様 に 、 EUC−KR, Johab,
ISO−2022−KR と い っ た
エ ン コ ー デ ィ
ン グ の 部 品 と
し て 用 い ら れ
る 。 EUC−KR は Linux に
お い て 最 も 重
要 な エ ン コ ー
デ ィ ン グ で あ
り 、 ASCII と KS X 1001 を 含
ん で い る 。 KS C 5601
は KS X 1001 の 古 い 名
前 で あ る 。
ISO 2022 and
ISO 4873
ISO 2022 と ISO 4873 標 準 で
は 、 VT100 の 動 作 に
基 づ い た フ ォ
ン ト コ ン ト ロ
ー ル モ デ ル が
規 定 さ れ て い
る 。 こ の モ デ
ル は Linux カ ー ネ ル
や xterm(1) に お い て
(部 分 的 に ) サ ポ
ー ト さ れ て い
る 。 日 本 語 向
け な ど 、 ISO−2022 を
ベ ー ス に し た
文 字 符 号 化 が
い く つ か 定 義
さ れ て き た 。
G0, G1, G2, G3 と 呼 ば れ る 4 つ の 図 形 文 字 集 合 が あ る 。 こ れ ら の う ち の ひ と つ は 、 最 上 位 ビ ッ ト が 0 で あ る コ ー ド の た め の 現 在 の 文 字 集 合 (初 期 値 は G0)、 ま た ひ と つ は 最 上 位 ビ ッ ト が 1 で あ る コ ー ド の た め の 現 在 の 文 字 集 合 (初 期 値 は G1)で あ る 。 そ れ ぞ れ の 図 形 文 字 集 合 は 94 か 96 の 文 字 を 持 ち 、 基 本 的 に 7−bitの 文 字 集 合 で あ り 、 040−0177 (041−0176) か 0240−0377 (0241−0376)の コ ー ド を 使 う 。 G0 は 常 に 94 文 字 で 041−0176 の コ ー ド を 使 用 す る 。 文 字 集 合 の 切 り 替 え は シ フ ト フ ァ ン ク シ ョ ン ^N (SO ま た は LS1), ^O (SI ま た は LS0), ESC n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), ESC ~ (LS1R), ESC } (LS2R), ESC | (LS3R) を 使 っ て 行 わ れ る 。 フ ァ ン ク シ ョ ン LSn は 最 上 位 ビ ッ ト が 0 で あ る コ ー ド の た め の 文 字 集 合 を Gn に 設 定 す る 。 フ ァ ン ク シ ョ ン LSnR は 最 上 位 ビ ッ ト が 1 で あ る コ ー ド の た め の 文 字 セ ッ ト を Gn に 設 定 す る 。 フ ァ ン ク シ ョ ン SSn は (最 上 位 ビ ッ ト の 値 に か か わ ら ず )次 の 文 字 の み 文 字 集 合 を Gn (n=2 ま た は 3)に 設 定 す る 。
94 文 字 集 合 で は 、 エ ス ケ ー プ シ ー ケ ン ス ESC ( xx (G0 用 ), ESC ) xx (G1 用 ), ESC * xx (G2 用 ), ESC + xx (G3 用 ) に よ っ て 、 Gn 文 字 集 合 を 用 い る よ う に 指 示 さ れ る 。 xx は "ISO 2375 International Register of Coded Character Sets" で 決 め ら れ て い る 一 文 字 、 ま た は 二 文 字 で あ る 。 た と え ば ESC ( @ は ISO 646 文 字 集 合 を G0 と し て 選 び 、 ESC ( A は (ナ ン バ ー サ イ ン (# )の 代 わ り に 、 ポ ン ド (£)を 持 つ ) UK ス タ ン ダ ー ド 文 字 集 合 を 選 択 す る 。 ESC ( B は (通 貨 記 号 の か わ り に ダ ラ ー ($ )を 持 つ ) ASCIIを 選 択 す る 。 ESC ( M は ア フ リ カ 言 語 (African languages) を 選 択 し 、 ESC ( ! A は キ ュ ー バ 語 (Cuban)文 字 集 合 を 選 択 す る 。 な ど な ど …
96−文 字 集 合 で は 、 エ ス ケ ー プ シ ー ケ ン ス ESC − xx (G1 用 ), ESC . xx (G2 用 ), ECS / xx (G3 用 )を 用 い る こ と で 、 Gn 文 字 集 合 を 使 用 す る よ う に 指 示 さ れ る 。 例 え ば 、 ESC − G は ヘ ブ ラ イ ア ル フ ァ ベ ッ ト (Hebrew alphabet) を G1 と し て 選 択 す る 。 マ ル チ バ イ ト 文 字 集 合 で は エ ス ケ ー プ シ ー ケ ン ス E $ xx ま た は ESC $ ( xx (G0 用 ), ESC $ ) xx (G1 用 ), ESC $ * xx (G2 用 ), ESC$ + xx (G3 用 ) を 用 い る こ と で 、 Gn 文 字 集 合 を 使 用 す る よ う に 指 示 さ れ る 。 例 え ば 、 ESC $ ( C は 韓 国 語 (Korean)文 字 集 合 を G0 と し て 選 択 す る 。 ESC $ B に よ っ て 選 択 さ れ る 日 本 語 文 字 セ ッ ト は 、 よ り 最 近 の バ ー ジ ョ ン で は ESC & @ ESC $ B に よ っ て 選 択 さ れ る よ う に な っ た 。
ISO 4873 は よ り 制 限 さ れ た 文 字 集 合 の 利 用 を 規 定 す る 、 そ の 規 定 で は 、 G0 は (常 に ASCIIに )固 定 さ れ る 。 従 っ て 、 G1, G2, G3 は 最 上 位 ビ ッ ト が セ ッ ト さ れ た コ ー ド と し て の み 呼 び 出 す こ と が で き る 。 特 に 、 ^N と ^O は 用 い ら れ ず 、 ESC ( xx は xx=B と し て の み 用 い る こ と が で き 、 ESC ) xx, ESC * xx, ESC + xx は そ れ ぞ れ ESC − xx, ESC . xx, ESC / xx と 等 価 に な る 。
TIS−620
TIS 620 は タ イ の 国
定 標 準 文 字 セ
ッ ト で 、 ASCII の 上
位 集 合 で あ る
。 ISO 8859 系 列 と 同
様 に 、 タ イ 文
字 は 0xa1−0xfe に 配 置
さ れ る 。
Unicode
Unicode (ISO10646) は 、 人 間
が 用 い る 全 て
の 言 語 の 全 て
の 文 字 を 、 明
確 に あ ら わ す
こ と を 目 的 と
し た 規 格 で あ
る 。 Unicode の 構 造
は 各 文 字 の エ
ン コ ー ド に 20.1 ビ
ッ ト を 与 え て
い る 。 ほ と ん
ど の コ ン ピ ュ
ー タ ー は 20.1 ビ ッ
ト の 整 数 を 扱
え な い の で 、
Unicode は 普 通 内 部
デ ー タ と し て 32
ビ ッ ト 整 数 に
エ ン コ ー ド さ
れ 、 16 ビ ッ ト 整
数 の 列 (UTF−16)(あ る
種 の 珍 し い 文
字 を エ ン コ ー
ド す る 場 合 に
だ け 2 つ の 16 ビ ッ
ト 整 数 が 必 要
と な る )か 、 8 ビ
ッ ト バ イ ト の
列 (UTF−8)と し て 扱
わ れ る 。
Linux は 8−bit Unicode Transformation Form(UTF−8) を 用 い て Unicode を あ ら わ す 。 UTF−8 は Unicode の 可 変 長 表 現 で あ る 。 UTF−8 は 7 ビ ッ ト を 符 号 化 す る の に 1 バ イ ト を 、 11 ビ ッ ト で は 2 バ イ ト を 、 16 ビ ッ ト で は 3 バ イ ト を 、 21 ビ ッ ト で は 4 バ イ ト を 、 26 ビ ッ ト で は 5 バ イ ト を 、 31 ビ ッ ト で は 6 バ イ ト を 用 い る 。
0,1,x を ゼ ロ 、 1 、 任 意 の ビ ッ ト と す る と 、 あ る バ イ ト 0xxxxxxx は Unicode で は 00000000 0xxxxxxx と あ ら わ さ れ る 。 こ れ は 、 ASCII の 0xxxxxxx と 同 じ シ ン ボ ル の コ ー ド で あ る 。 こ の よ う に 、 ASCII は 変 更 な し に UTF−8 に 変 換 で き 、 ASCII の み を 使 う 場 合 は 、 コ ー ド に お い て も フ ァ イ ル サ イ ズ に お い て も 、 変 更 に 関 し て 何 も 気 に し な く て よ い 。
110xxxxx と い う バ イ ト は 2 バ イ ト コ ー ド の 始 ま り で あ る 、 そ し て 、 110xxxxx 10yyyyyy は 00000xxx xxyyyyyy と い う よ う に 組 み 立 て ら れ る 。 ま た 、 1110xxxx は 3 バ イ ト コ ー ド の 始 ま り で あ り 、 1110xxxx 10yyyyyy 10zzzzzz は xxxxyyyy yyzzzzzz と い う よ う に 組 み 立 て ら れ る (UTF−8 が 31 ビ ッ ト ISO 10646 コ ー ド を 利 用 す る と き は 、 こ の 工 程 は 6 バ イ ト コ ー ド ま で 発 展 さ せ ら れ る )。
ISO−8859 文 字 集 合 を 使 っ た ほ と ん ど の テ キ ス ト で は 、 こ の こ と は 、 ASCII の 範 囲 外 を 使 っ た 文 字 は 二 つ の バ イ ト に 符 号 化 さ れ る と い う こ と を 意 味 す る 。 (UTF−8 を 使 う と 、 ISO−8859 を 使 用 し て い る ) 元 々 の テ キ ス ト フ ァ イ ル の サ イ ズ か ら 1 〜 2 パ ー セ ン ト 大 き く な っ て し ま う こ と に な る 。 ロ シ ア 語 や ギ リ シ ャ 語 の テ キ ス ト で は 、 こ れ に よ っ て 元 の テ キ ス ト は 2 倍 の 大 き さ に な る こ と に な る 。 な ぜ な ら 、 こ れ ら の 言 語 の 文 字 の ほ と ん ど が ASCII の 範 囲 外 だ か ら で あ る 。 日 本 語 の ユ ー ザ ー の 場 合 に は 、 現 在 広 く 利 用 さ れ て い る 16 ビ ッ ト コ ー ド に 3 バ イ ト 必 要 と い う こ と だ 。 い く つ か の 文 字 集 合 (特 に ISO 8859−1) か ら Unicode へ の 変 換 は ア ル ゴ リ ズ ム で 行 う こ と が で き る が 、 汎 用 的 な 変 換 に は 変 換 テ ー ブ ル が 必 要 で あ り 、 16 ビ ッ ト コ ー ド の 場 合 は こ の テ ー ブ ル は か な り 大 き な も の と な る 。
UTF−8 は 自 己 同 期 的 で あ る 。 10xxxxxx は 終 端 で あ り 、 ほ か の バ イ ト は コ ー ド の 先 頭 で あ る 。 UTF−8 の 文 字 列 に お け る ASCII の バ イ ト は 、 常 に そ の 文 字 自 身 を 表 現 す る こ と に 注 目 し て ほ し い 。 特 に 、 幾 つ か の 大 き な コ ー ド の パ ー ト を 形 成 す る た め に 、 NUL ('\0') や '/' を 埋 め 込 む 必 要 は な い 。
ASCII と NUL と '/' は 変 更 さ れ な い た め 、 カ ー ネ ル は UTF−8 を 使 用 し て い る こ と を 特 に 意 識 し な く て も 良 い 。 カ ー ネ ル は バ イ ト が 何 を あ ら わ し て い る か に 注 意 す る 必 要 が な い 。
Unicode デ ー タ 列 の レ ン ダ リ ン グ は 典 型 的 に は Unicode の サ ブ セ ッ ト か ら グ リ フ へ の マ ッ プ で あ る "サ ブ フ ォ ン ト (subfont)" テ ー ブ ル を 利 用 し て 行 わ れ る 。 カ ー ネ ル 内 部 で は 、 Unicode を 使 っ て ビ デ オ RAM 内 部 に ロ ー ド さ れ た サ ブ フ ォ ン ト を 記 述 し て い る 。 こ れ は 、 UTF−8 モ ー ド の Linux コ ン ソ ー ル で は 512 個 の 異 な っ た シ ン ボ ル を 持 っ た 文 字 集 合 を 利 用 で き る こ と を 意 味 す る 。 こ れ は 、 日 本 語 、 中 国 語 、 韓 国 語 で は 十 分 で は な い が 、 そ の 他 の ほ と ん ど の 目 的 で は 十 分 で あ る 。
関 連 項 目
iconv(1), console(4), ascii(7), iso_8859−1(7), unicode(7), utf−8(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。