18.4.1 文字コード

コンピュータの中では, 文字もビット列によって符号化されています.文字とビット列との対応関係を文字コードと呼びます.もうちょっと細かく分けると,次のような 2 段階で行われています.

  • さまざまな規格で,「これらの文字を使うことにする」という文字の範囲(文字集合)が定められています.
  • 文字集合の各文字に対して,コンピュータ内部で扱えるビット列を対応させます(符号化).通常,このビット列は何バイトかの長さを持ちます(hwb18.2 情報の単位 参照).

文字コードは(文字)エンコーディングと呼ばれる場合もあり,特に日本語の文字コードについては漢字コードと呼ばれることもあります.文字コードにはたくさんの種類がありますが,この小節では日本で使われるいくつかの文字コードについて説明をしていきます.

さて, ここまでは「文字」と呼んできましたが, コンピュータを使う際には「通信開始」であるとかいったコンピュータを制御するための符号を送信する必要が出てきます. コンピュータではこれも通常の文字と同じくビット列を割り当てて表現します. これらの文字は特別に制御文字と呼ばれ,文字コードが異なっても同じビット列で表されることが多いです.制御文字の例として,とくに有名なものを挙げます.

TAB
タブを表します.テキストファイルで,列の区切りを表すときに使うことがあります.
CR (carriage return)
Mac では伝統的に改行を表す文字(改行コード)として用いられていました.もともとの意味は「タイプライターの印字装置を行の先頭に戻す」(復帰)です.
LF (line feed)
Linux, BSD などの UNIX 系 OS で改行コードとして用いられています.こちらも元々はタイプライターに由来し,「1 行紙を送る」ことが原義です.

ちなみに,Windows では改行は CR と LF の連続を用いて表されます.mi や Emacs といった一部のテキストエディタでは,文字コードだけでなく改行コードも変えられるようになっています(それぞれ hwb8.2.3 文字コード,改行コードの設定, hwb8.4.3 文字エンコーディングの設定 を参照).

18.4.1.1 ASCII と JIS 仮名

具体的にどのように文字とビット列が対応するのかを見ていきましょう. まずは, 各文字に対応するビット列が高々 1 バイト(8 ビット)のものです. (このページを読む)

18.4.1.2 JIS 漢字

日本語では漢字や仮名といった数千字以上の文字を使います. 1 バイトではせいぜい 28 = 256 種類の文字しか表せないので, 1 バイトで漢字を表現することは不可能です. このページでは, 日本語の文字を表現するため […] (このページを読む)

18.4.1.3 Unicode

CJK における字形の違い

このページでは, 全世界の文字を1つの文字集合に収めてしまおうという考えで作られた Unicode について説明をします. (このページを読む)