Manpages

名 前

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/ に 書 か れ て い る 。