文字コード#
文字コードはコンピューターに文字 (文字、数字、区切り記号、空白文字などを含む) を理解させるための符号化システム。
代表的な文字コード#
ASCII#
1960年代にアメリカで開発された
7bit, 1byteで表す
ASCIIの国際化されたものが ISO/IEC 646
ISO/IEC 646は各国語版にカスタマイズしたバージョンがある
ISO/IEC 646の日本語版はJIS X 0201として標準化された。ASCIIに比べて「\」が「¥」に、「~」が「ˉ」になっている違いがある。
どこの国にも特化してない「国際基準版」もある。ISO/IEC 646 国際基準版 (1991年版)はASCIIと同等
ISO/IEC 2022#
8bit, 2byteで表す
マルチバイト文字(2バイトや3バイトで1文字を表す)の導入
JIS X 0208#
1978年に制定された
1文字に複数バイトを使う2バイト符号化文字集合を採用しており、漢字を扱うことができる
Shift_JIS#
JIS X0208をJIS X 0201と組み合わせる方式
Unicode#
世界の様々な言語・記号に番号を割り当てた文字コード
当初は16ビット(最大65,536文字)の固定長の予定だったが、世界中の文字・記号を収めるには不十分となり、拡張の必要性が生じた。そこでUTF-16やUTF-8が生まれた。
UTF-16:Unicodeの中で文字が割り当てられていない16ビットの符号単位を2つ並べることで拡張する
UTF-8:ASCIIとバイト単位で互換となるようにした可変長の符号化方式
Pythonでの扱い#
Unicode HOWTO — Python 3.12.5 ドキュメント
"\N{GREEK SMALL LETTER BETA}"
'β'
"\N{GREEK SMALL LETTER BETA}".encode("utf-8")
b'\xce\xb2'
"\N{GREEK SMALL LETTER BETA}".encode("shift-jis")
b'\x83\xc0'
参考#
矢野啓介. (2010). プログラマのための文字コード技術入門.