TeX

エンコーディング

エンコーディング(encoding)とは、文字を 1000001 などの列(「バイト列」といいます)で表す方法のことをいいます。

ASCII 文字

「1バイト」とは「8ビット」のことで、0と1の8つの組合せのことです。2通りが8つですから 2の8乗=256 通りの組合せがあります。これでアラビア数字、ローマ字の大文字・小文字と主要な記号は表せます。これで表される文字を「1バイト文字」「半角文字」などといいます。ASCII 文字ともいいます。

日本語のエンコーディング

しかし日本語の場合を考えてみましょう。日本語にはひらがな、かたかな、漢字があります。とても256通りでは表せません。2バイトを使うと 256 x 256 = 65536 通り表せますから、漢字まで対応できそうです。これで表される文字を「2バイト文字」「全角文字」といいます。2バイト文字の画面の占有面積は1バイト文字の約2倍なので、直観的に理解できるでしょう*1

ただし、日本語のエンコーディング方式(文字コード)にはいくつかあります。

UNIX
EUC-JP
Macintosh
Shift JIS
Windows
Shift JIS
情報通信
JIS(など)

対応していない文字コードの文書を開けば、当然うまく表示できません(「文字化け*2」)。

UTF-8, UTF-16

話を戻していろいろな言語のエンコーディングを考えてみます。日本語の場合なら2バイトで足りそうですが、それに中国語、韓国語、…などを含めたら2バイトでも足りません。そのような問題を克服するために Unicode が考え出されました。UTF-8 と UTF-16 は Unicode 用のエンコーディングです。多言語を表すために考え出されたので、いろいろな言語を同時に表現できます。今では様々な OS で使えるようになってきています。ただし Unicode には「規定されていない文字については救済不可能」という欠点があり、文字をたくさんもつ国からは批判されています(後で述べるように、古典ギリシア語にも同じ問題があります)。また、Unicode の規格が「ゆるい」ために発生する問題もあります。UTF-8、UTF-16 では文字によってバイト数が異なります。

各言語のエンコーディング


*1 昔のワープロでの用語です。
*2 ただし、文字化けの原因は他にある場合もあります。機種依存文字など。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS