コンピュータ上で文字を扱うときに各文字に割り当てられるバイト表現

一般的に、「文字集合」に対してその「符号化方式」がありますが、1つの文字集合に対して複数の符号化方式があります。例えば、「JIS X 0208」という一つの日本語の文字集合に対して、Shift_JISEUC-JPJISコードといった感じです。

 

例えば、「seiko」という文字では、Shift_JISでもEUC-JPでも
(16進): s(73) e(65) i(69) k(6b) o(6f

で同じですが、「セイコー印刷」という文字では、

Shift_JIS(16進):
セ(83 5a) イ(83 43) コ(83 52) ー(81 5b) 印(88 f3) 刷(8d fc
EUC-JP(16進) :
セ(a5 bb) イ(a5 a4) コ(a5 b3) ー(a1 bc) 印(b0 f5) 刷(ba fe

というようにその符号化方式により異なります。

また、1980年に提唱されたUnicode(ユニコード)は、上記の文字集合よりもっと多くの文字(世界中の文字)を扱うことができるもので、その符号化方式も複数存在します。WindowsやMacOSX、LinuxやJavaなどの内部処理コードとして利用されています。

これらは、OSやアプリケーション次元でも表に表れない形で処理されており、WordやExcelなどで文字を扱うときには気にも留めないことだと思いますが、厳密に言うと文字コードに複数の規格が存在するということは、処理をするOSやアプリケーションによっては文字化けなどの問題が起きる場合があるということです。様々な環境で作られたデータを扱うメールソフトではよくありました。今でこそ、その多くが複数の符号化方式に対応しているため、そのようなことは殆どありませんが、一昔前はよくありましたね。

 

何でも自動的にうまく処理できるコンピュータといえども、この文字コードに関しては紆余曲折の歴史があり、今もなお続いているということを知っておくことも必要でしょう。

この文字に関しては、印刷業界でも特にデリケートな部分で、知らずに事故に遭遇することも決して稀なことではありません。特にリリース時から騒がれていたWindowsVistaの文字コードと共に附属の日本語入力システム(IME)、さらにはOffice2007附属のIMEについてなど、深刻な問題点について「その2」で触れて行きたいと思います。