第1章 ASCIIからUnicodeまで……文字集合と符号化方式を中心とした
文字コードの理論と実際

 基本的にコンピュータは0と1のディジタル信号しか扱えない.そのようなディジタル計算機にすぎないコンピュータで文字を扱うためには,0と1の配列を実際の文字へとマッピングした取り決め―文字コード―が重要になる.

 文字コードは,扱う文字の母集合である「文字集合」と,それをマッピングする「符号化方式」の二つにより多くの組み合わせが存在する.また,「文字」という文化に直結するものであるだけに,各国の思惑や歴史的背景など,技術面以外のものも絡んで一見複雑そうに見える.

 そこで本章では各種文字コードについて,それらが策定された背景と実装に関して徹底的に解説する. (編集部)

コンピュータと文字の関係

 人間は,これまで4回の情報革命を経験してきた.第一次革命は話す能力の獲得,第二次革命は文字の発明,第三次革命は印刷技術の発明,そしてもっとも最近起こった第四次革命はコンピュータの発明である.

 第二次革命が起こり,文字がはじめて使われだしたのは,紀元前3500年前,四大文明の一つ,メソポタミア文明であるといわれている.学校で世界史を勉強する際,まず最初に習う四大文明だが,そのうちメソポタミア文明のキーワードの一つとして必ず覚えさせられる「楔(くさび)型文字」,これが世界ではじめて言葉を記述する記号として使われだしたものなのである.

 その後発明された印刷技術により,文字はより一般的なものとなる.そして,第四次革命によって発明されたコンピュータでも,当然のように文字が使われている.

 しかし,コンピュータで文字を使うには,工夫が必要となる.なぜなら,コンピュータは日本語にすると「計算機」とよばれるように,計算をする機械であり,本来数値しか扱うことができないものだからである.そのため,この数字をこの文字に割り当てる,といったルールを決めて,その数値の羅列を,文字列として扱う必要があるのだ.

 「使用する文字にそれぞれ数値を割り当てて,数値の羅列で文字を表現する」というルールは「文字コード」と呼ばれている.コンピュータでは必ず何らかの文字コードが使われている.

 しかし,文字コードは1種類だけではない.世の中には数多くの言語があり,多くの言語は,その言語特有の文字をもっている.そのため文字コードも,言語ごとにまったく異なるものが利用されている.さらに,同じ言語を表現する文字コードであっても,複数の文字コードが利用されているケースも多く,非常に厄介な問題となっているのである.

 ある文字コードで記述された文字列を,その文字コードを理解できないコンピュータで読むと,どうなるだろうか.文字コードは単なる数値であるから,その数値自体はその文字コードを理解できないコンピュータでも扱うことはできる.しかし,それを文字に変換するルールを知らないので,正しい文字列を表示することができない.しかも,そのコンピュータが理解している別の文字コードを使って表示しようとしてしまうが,もちろん異なる文字コードでは,同じ数値に異なる文字が割り当てられているので,元の文字列とは,まったく異なる文字が表示されてしまうのである.これを俗に「文字化け」という.

 かつて,それぞれのコンピュータが独立して存在していて,相互に接続されていないことが多かった時代は,そのコンピュータの中で利用する文字コードがきちんと決まっていれば,それほど問題はなかった.ところが近年,インターネットの普及により,他の人,他のコンピュータが作成したデータを扱うといった機会が,一般の人の間でも非常に多くなった.Webページを巡回していると,日本語で書かれているはずなのに,わけのわからない記号の羅列になってしまって読めない,といった経験を,ほとんど誰でもしていることだろう.「文字化け」という言葉も,非常に一般的なものとなってきているほどである.

 したがって,文字コードについての知識をもつことは,コンピュータを扱う中で,ますます重要なトピックになってきているのである.

文字集合と符号化方式

 さて,日本語を表示するための文字コードとして,よく用いられるものには「シフトJIS」,「EUC」,「JISコード」が挙げられる.これらのコードの名前は,コンピュータを扱っていれば,どこかで一度は見たことがあるだろう.これらは一般的に「文字コード」と呼ばれているが,実際には「符号化方式」と呼ばれる規格である.文字コードは,実際には「文字集合」と「符号化方式」という要素で成り立っているのだ.

 文字集合は,世界中に無数にある文字のうち,どの文字を使うのか,ということを決めた「使う文字一覧表」のことである.そして,どの文字集合を使い,それらの文字を,どういうコード(数値)に当てはめるか,を決めるのが符号化方式である.

 そして,先ほど挙げた「シフトJIS」,「EUC」,「JISコード」は,すべて符号化方式の名前なのだ.これらの符号化方式では,JIS X 0201,JIS X 0208,JIS X 0213という文字集合を利用できる.

 世の中には,さまざまな文字集合,さまざまな符号化方式が定義されている.続いて,それらの中で日本語を利用できるものを中心に見ていくことにしよう.

インデックス
 ◆コンピュータと文字の関係
 ◆文字集合と符号化方式
 ◆文字集合
NEW● ASCII/● ISO646
NEW● JIS X 0201/● JIS X 0208

今月号特集トップページへ戻る


Copyright 2002 水野貴明