アルファベット圏以外のITアーキテクトは文字コードに関する苦労が絶えない。システムやクラウドサービスは国をまたいで使う時代であり、コミュニケーションの基盤中の基盤である「文字」を間違いなく表示・交換できるようにシステム全体を整える必要があるからだ。

 日本の文字表現は多様化してしまっている。1970年代から日本は工業規格(JIS)で漢字のICT対応を先行させてきたが、その後の国語審議会(現在は文化審議会国語分科会)での常用漢字改定やグローバル標準の歴史的経緯の影響で、多様化が進んだ。

 システムは作られた年代に応じて、異なった「文字」を使っているのも実態だ。メインフレームは83JIS準拠のベンダー固有体系、UNIXはEUC、WindowsはSJIS、LinuxはUTF-8(Unicode)といった具合だ。文字には多面性がある。整理して理解しておこう。

文字コードの基本は文字セットとエンコーディング方式

 文字を扱うための文字コードの種類は、「文字セット(文字集合:アルファベットや50音といった文字のまとまり)」と「エンコーディング方式(符号化方式:コンピュータ内や伝送上の表現)」の組み合わせで決まる。

 文字セットは文字コード表に文字を割り付けたものであり、文字コード表上の該当文字の位置を「コードポイント(符号位置)」で表す。コードポイント=エンコーディング結果であればシンプルだが、そうではないので注意が必要だ。例えば半角文字(英数カナなど)と全角文字(漢字など)を一つのデータに混在させるためには、コードポイントの重複を避けるためのエンコーディング方式が必要になる。

 この三つの概念を正しく切り分けることが、ITアーキテクトが文字コードを理解する第一歩だ。実は前述のシステムごとの「文字」は三つの概念が混在している。83JISやUnicodeは文字セット、EUCは文字コード、SJISやUTF-8はエンコーディング方式である。

 半角と全角についても理解しておこう。コンピュータで扱う文字は当初、英数中心の伝送コードとしての7ビット系(パリティを含めて8ビット)、それにカタカナを含めた8ビット系が基本だった。当時の表示装置はVGA(640×480ドット)が主流であり、横8ドット×縦16ドット(+行間4ドット)で「80文字×24行の半角文字」を表示する。

 次の時代では漢字が加わった。文字の横幅は2倍(16ドット)になり、「40文字×24行の全角文字」を表示するようにした。こうすることで、半角と全角を8ドットの倍数で混在して表示できるという訳だ。