文字コードとは?ASCII, UTF-8, UTF-16って?

基礎知識

文字コードについて調べたので備忘録。

文字コードとは

コンピューター上で文字を利用するうえで、各文字に割り当てられたバイト数との対応関係のこと。

つまり、コンピュータは「a, あ, 日」などの文字をそのまま認識・処理することができないので、コンピュータが扱えるように文字をコード化したもの。色んな種類があり、例えば、「A」の文字コードは「65」や「0x41」になる。

文字を文字コード化することを文字エンコーディングという。逆に、文字コードを文字化するのは、文字デコーディング。

有名な文字コード

ASCII(アスキー)

1960年代に定められた、歴史の古い文字コード。

元々は7桁の2進数を使って文字との対応関係を表していたが、後に8桁まで増えた。

ただ、8桁の2進数では最大でも約250種類までしか対応できなかったので、漢字やハングルなどを表すには不十分で、アルファベット、数字、記号しか表せなかった。

Unicode

現在主流の文字コード。約111万ほどの文字・記号に対応可能で、現在は約13万個が割り当て済。

漢字やひらがな等の日本語や韓国語も表現でき、ASCIIとの互換性もあるためよく利用されている(古いプログラムはASCIIが使用されていることもあるため)。

1文字に使用するバイト数に応じて、UTF-8、UTF-16などの形式がある。

Unicodeの形式例

  • UTF-8:1文字あたり、1~4バイト(8ビット~32ビット)
  • UTF-16:1文字あたり、2バイト(16ビット) または 4バイト(32ビット)
  • UTF-32:1文字あたり、4バイト(32ビット)

※1バイト=8ビット

ちなみに、JavaScriptやJavaなどはUTF-16を使っていて、データベースやwwwはUTF-8が多いそう。

タイトルとURLをコピーしました