文字コード
出典: フリー百科事典『ウィキペディア(Wikipedia)』
文字コード(もじコード)はコンピュータ上で文字を利用するために各文字に割り当てられるバイト表現もしくは、バイト表現と文字の対応関係(文字コード体系)。
目次 |
[編集] 概説
コンピュータでは、すべての文章は文字コードの並びとして扱う。コンピュータの発展が早かった英語圏やその他のアルファベットを使用する言語(主に西洋)、日本語、中国語、朝鮮語などは言語固有の文字コードが制定され、利用可能になっているが、その他の大部分の言語ではコンピュータ上で文字を正常に表現することができない。
文字コードの歴史は電気通信の歴史とほぼ等しい。古くはテレックスで用いられた国際電信アルファベット第2、アメリカ規格協会(ASA)が定めた ASCII、IBMによって開発されたEBCDIC等があった。しかしコンピュータシステムが多くの言語圏で利用されるようになるにつれて文字コードの種類も増大し、現在では100種類以上の代表的な文字コードが存在する。
多様な文字コードの存在は文字コードの互換性問題をひきおこす。文字コードの互換性問題とは、ある文字コードで記録されたデータを別の文字コードに変換しようとするとき、一方で定義されている文字がもう一方では定義されていない(あるいは用途によって2種類の文字に分けられている)という問題である。日本語では、これは特殊な漢字(苗字や団体名に使われる漢字)などが入ったデータベースを扱うときなどに問題となる。また文字コードの変換にかかるコストはばかにならないことが多い。
近年、これらの互換性問題を解決するためにすべての言語の文字コードを1つの文字コードで対応するする試みであるUnicodeが作られ、オペレーティングシステムやJava言語などの内部コードとして広く利用されている。マイクロソフトやアップルコンピュータなどの最近のOSは、表面上はUnicode以外の文字コードを使っていても内部処理上はUnicodeに変換して処理しているものが多い。この場合、字によってUnicodeと各文字コードの変換テーブルがOSによって異なるなどの問題が生じる場合がある。
[編集] (符号化)文字集合/文字符号化方式
文字コードに関して、(符号化)文字集合 (Coded Character Set、CCS) と(文字)符号化方式 (Character Encoding Scheme、CES) という区別がなされることがある。
文字コードには、文字集合は等しいが符号化方式だけが異なる文字コードと、そもそも対象としている文字集合そのものが異なる文字コードがある。たとえば、日本語にはJIS X 0208というひとつの文字集合に対してISO-2022-JP(JISコード等と呼ばれることが多い)、EUC-JP、Shift_JIS など複数の符号化方式が存在する。Unicodeにも単一の文字集合に対してUTF-8、UTF-16、Punycode などの異なる符号化方式が存在する。また、それぞれ異なる文字集合を同じ符号化方式とする関係もあり、符号化方式EUCに対してEUC-JPやEUC-CNなどがある。通常、文字コードといえば符号化方式をさすこともあれば、文字集合と結合させた概念 (キャラクタセットあるいは符号化表現) として語られることもある。これには、ISO 8859やBig5のように、文字集合と符号化方式が事実上一体化している体系が少なからず存在することも影響している。
もっとも、「符号化文字集合」や「文字符号化方式」といった用語は標準化団体によっても定義が異なるため、「××は符号化文字集合だ、いや文字符号化方式だ」といった議論は意味をなさないことがある。元来、文字コードは文字の集合の各文字に一意なバイト表現を割り当てただけのシンプルなものだったが、バイト値を計算によって変形した符号化表現が用いられるようになってきたため (例えばShift_JISやUTF-8)、「符号化文字集合」と「文字符号化方式」とを区別するようになったと考えられる。両者の区分はIETFでは用いられるが、ISO/IECやJISなどでは用いられない。
[編集] 外字
大抵の文字コードには外字というユーザが独自にフォントを登録できる領域がある。UNICODEにおいては、6400+131072文字の『PUA(Private Use Area=私的領域)』があり、シフトJIS(CP932)にも1880文字の外字領域がある。ユーザが独自にフォントを登録した文字は、他の環境で読むことができないので、互換性の上で重大な問題を引き起こす。
JIS規格においては、JIS X 0208:1997で空き領域を外字として使用することが原則禁止され、JIS X 0213:2000では、実装水準4を選択する場合には使えなくなった。
なお、外字とは表外字(規格表の外の文字)の略であり、狭義にはユーザがデザインして用いるユーザ定義文字を指し、広義にはメーカーなどが定義した機種依存文字もしくはベンダ拡張漢字というものを含めることがある。
[編集] 文字コードの一覧 (一部)
[編集] 1バイト系符号化文字集合
1バイト系文字コードは、俗に「半角文字」と呼ばれることもある。
- ASCII
- ISO/IEC 646
- ISO 8859(1~16)
- EBCDIC
- JIS X 0201(JISローマ字、カタカナ)
[編集] 2バイト系符号化文字集合
2バイト系文字コードは、俗に「全角文字」と呼ばれることもある。
- JIS X 0208(第一・第二水準)
- JIS X 0212(補助漢字)
- JIS X 0213(JIS X 0208に第三・第四水準を追加した文字集合。JIS2004とも呼ばれる)
- GB 2312
- GB 18030
- KS X 1001 (KS C 5601)
- Big5
- CNS 11643
- Windows-31J
[編集] 文字符号化方式とキャラクタセット
- ISO 2022 - ISO/IEC 2022 (JIS X 0202) に (ほぼ) 準拠した文字符号化方式を用いた7ビットのキャラクタセット。
- ISO-2022-JP (RFC 1468、俗に「JISコード」と呼ばれる文字符号化)
- ISO-2022-JP-1 (RFC 2237、JIS X 0212対応)
- ISO-2022-JP-2 (RFC 1554、多言語拡張)
- ISO-2022-JP-3 (JIS X 0213:2000対応)
- ISO-2022-JP-2004 (JIS X 0213:2004対応)
- ISO-2022-CN
- ISO-2022-CN-EXT
- ISO-2022-KR
- EUC - 拡張UNIXコード (EUC) 文字符号化方式を用いた8ビットのキャラクタセット。ISO/IEC 2022の8ビット符号化表現に相当する。
- シフト符号化表現の文字符号化方式を用いた8ビットのキャラクタセット。
[編集] 多言語文字集合
多言語を同時に扱うことを目的として開発された文字コード体系。
- Unicode
- ISO/IEC 10646 (UCS、JIS X 0221)
- TRONコード(BTRON#大規模文字セット)
[編集] 印刷業界の文字集合
印刷業界においては、公的な文字コード規格では包摂されている異体字やグリフの相違を厳密に区別したいというニーズが強く存在する。 そのため、そのようなニーズに応える文字集合が企業ベースで策定されている。 一般的な情報交換に用いられることはない。
- Adobe-Japan文字コレクション
- Adobe-Japan1-0
- Adobe-Japan1-1
- Adobe-Japan1-2
- Adobe-Japan1-3 (OpenType Standard)
- Adobe-Japan1-4 (OpenType Pro)
- Adobe-Japan1-5 (JIS X 0213:2000対応)
- Adobe-Japan1-6 (JIS X 0213:2004対応)
[編集] ベンダごとの文字コード
以下は、主にメインフレーム・オフコンなどのプロプライエタリなレガシーコンピュータにおいて利用される文字コードである。レガシーコンピュータとの連携を目的とする場合を除き、パソコンで利用されることはない。
- 富士通
- JEF〈ジェフ〉
- メインフレーム(Mシリーズ、GSシリーズ)で利用される。JIS C 6226-1978をGRに展開し、その上方エリアに『JEF拡張漢字』というベンダ選定拡張漢字を配置。
- EUC-U90
- DS/90系UNIXサーバで利用される。JIS90年版をGRに展開し、『JEF拡張漢字』をシングルシフトのGR展開で表現。
- JEF〈ジェフ〉
- NEC
- 日立
- KEIS(78)〈ケイスナナハチ〉
- メインフレーム(Mシリーズ、APシリーズ)で利用される。JIS C 6226-1978をGRに展開し、その上方エリアに『拡張文字セット3』というベンダ選定拡張漢字を配置。
- KEIS(83)〈ケイスハチサン〉
- メインフレーム(Mシリーズ、APシリーズ)で利用される。JIS X 0208:1983をGRに展開し、その上方エリアに『拡張文字セット3』というベンダ選定拡張漢字を配置。
- KEIS(78)〈ケイスナナハチ〉
- 日本IBM
- 日本ユニシス
- LETS-J〈レッツジェー〉
- ユニバック系メインフレームで利用される。JIS X 0208:1983をGRに展開し、その上方及び左方エリアにベンダ選定拡張漢字を配置。
- JBIS〈ジェイビス〉
- バロース系のコンピュータで利用される。
- LETS-J〈レッツジェー〉
- 三菱電機
- JSII〈ジェイエスツー〉(『MELCOM漢字』とも呼ばれる)
- 三菱電機のメインフレームで利用される。JIS X 0208:1983をGRに展開し、その上方エリアにベンダ選定拡張漢字を配置。
- JSII〈ジェイエスツー〉(『MELCOM漢字』とも呼ばれる)
- DEC
- DEC漢字
- ミニコンのVAX用OSであるVMSで利用される。JIS X 0208:1983をGRに展開し、その左方エリアにベンダ選定拡張漢字を配置。
- Super DEC漢字
- ミニコンのVAX用OSであるVMSで利用される。JIS X 0208:1983をGRに展開し、その左方エリアにベンダ選定拡張漢字を配置。そして、シングルシフトのGR展開でJIS X 0212を表現。
- DEC漢字
[編集] 参考文献
- 安岡孝一、安岡素子『文字コードの世界』東京、東京電機大学出版局、1999年9月、ISBN 4-501-53060-X。
- 『bit』2001年4月号別冊、小林龍生・安岡孝一・戸村哲・三上喜貴編「インターネット時代の文字コード」東京、共立出版、2001年4月、ISBN 4-320-12038-8。
- 三上喜貴『文字符号の歴史』アジア編、東京、共立出版、2002年3月、ISBN 4-320-12040-X。
- Ken Lunde 『CJKV日中韓越情報処理』、東京、オライリー・ジャパン、2002年12月、ISBN 4-87311-108-0。
- 安岡孝一、安岡素子『文字符号の歴史』欧米と日本編、東京、共立出版、2006年2月、ISBN 4-320-12102-3。