睡人亭

文字コード入門

コンピュータで文字を扱うには?

文字コードとは?

[文字コード]とは、文字をコンピュータで利用可能にするために創られた取り決めや仕組みの総称のことです。その仕組みは大きく分けて、以下の二つに分かれています。

  1. 文字集合
  2. エンコーディングスキーム(文字の符号化)

実際に文字コードをコンピュータで利用可能にするには、作成された文字コードをコンピュータのオペレーティングシステム(Windows, MacOS, 各種Unix系列, 携帯用OS等)で使用可能(実装と呼びます)にする必要があります。

オペレーティングシステムに実装され、文字集合を網羅するフォントが存在し、対応するなおかつアプリケーションソフトレベルで実装された文字コードに対応して初めて、利用者がその文字コードを実際に使うことができるようになります。

文字集合

[文字集合]とは、文字コードに収録したい文字を選択して特定の区画番号に従って配列した表を指します。

日本の所謂JIS漢字コードの文字表では、94×94の表で構成されています。

JIS X 0213:2012(日本の文字コード 後述) 第1面-第4区の文字表
0 1 2 3 4 5 6 7 8 9
1-04-00
1-04-10
1-04-20
1-04-30
1-04-40
1-04-50
1-04-60
1-04-70
1-04-80 か゚ き゚ く゚
1-04-90 け゚ こ゚

この表に従えば、[あ]は[1面4区の2番]、[い]は[1面4区の4番]となります。いわゆる五十音図とは異なり、JIS漢字コードの文字表は「あいうえお」とは並ばずに、「ぁあぃいぅうぇえぉお」と並んでいる点に注意しましょう。

この表で「全てのひらがな」という場合は、「ぁ」から「こ゚」までとなります(JIS X 0208の場合は「ぁ」から「ん」)。

エンコーディングスキーム

[エンコーディングスキーム]とは、文字表の文字を0と1との組み合わせに置き換える(デジタル化・符号化)するための規則です。

何桁かのビット(バイト・オクテット)を単位(枠組み)とし、その枠の中で特定の文字を任意のビット列に置き換えますが、その際、一つのビット列の組み合わせと文字表の文字一文字が一対一で対応するのが原則となります。

英数字用のASCIIコード
7ビットを一単位とします。
全部で2の7乗=128通りの文字が収納可能です。
最上位桁に0を加えて8ビット単位で運用する場合もあります。
アルファベット以外の欧米文字を使用可能にするために、最上位の1ビットも使った「拡張ASCII」が制定されている
日本のJIS漢字コード
16ビット(2バイト)を一単位とします。
全部で2の16乗=65536通りの文字が収納可能です。
JIS漢字コード用のエンコーディングスキームとしては、ISO-2022-JP、EUC-JP、Shift_JISがあります。
組み合わせ方法
文字表の数値を計算式に基づいて機械的にビット列に置き換えるものと、文字表の文字番号(数値)をそのままビット列にて置き換えるものなどがあります。
前者は日本語用文字コードのエンコーディングスキームで使われ、後者はUnicodeのUCS2のそれとして採用されています。