データベース

25. UTF-8 とは何だ ?

好むと好まざるに拘わらず時代はユニコード(Unicode)の方向に向かっていることは確実である。
実は Excel に包含されているセル値はすべてユニコードで保管されているしVC++ や C# の
ソース・コードは米国では一般的にかなり前からユニコードで記述されている。
Windows から ASCII コードがなくなってPC やサーバーのデータも、すべてユニコードで
統一される日も遠くはないだろう。
このシリーズでは System i のユーザーのためのユニコードを短時間で学習して頂くことを目的としている。

ユニコードには、

UTF8UTF16

とがあるが、ここでは今、ポピュラーな UTF-8 とは何かを簡単に紹介しよう。
あなたが今、Google や MSN, Yahoo 等の検索エンジンを使っているのであれば
右ボタンでソース・コードを表示してみると

charset=utf-8

のように検索エンジンの文字コードが utf-8 として設定されていることに
気づくはずである。
ところが Web開発ではほとんどがまだ

charset=shift_jis

のように 日本語(シフトJIS) を指定している。
全世界には様々な言語の違いによるコードがあり、そのため日本語の漢字のある文字は
アラビア語の別の文字を示すことになってしまっているのが現状である。
ユニコードとはこのような世界中のコードの重複を避けるために考え出されたコードであり
ユニードでは例えば「漢」という文字コードは唯一しかなく他の別の言語のコードと
重複することはない。
ユニコードで UTF-8 は、比較的、単純であり半角英小文字は ASCII コードと全く同じである。
これに対して UTF-16 では英数字も倍角になるので、文章にすると長くなって間延びした
イメージとなってしまう。従って UTF-16 よりも UTF-8 のほうが圧倒的に普及している。
日本語では半角カナ、全角文字( 漢字 + 全角カナ ) は EBCDIC のように 2 バイトではなく
3 バイトを占めている。全世界のダブルバイト文字を重複のないように結合すると
2 バイトでは不足となって 3 バイトが必要となったのであろう。

つまり UTF- 8 とは

ASCII の半角英数字 + 3バイトの漢字・カナの Unicode

と理解しておけば十分である。