概要
「文字コードってなんなの?」という疑問に答えます。
文字コードってなんなの
文字コードは、文字に対応するバイト列のことです。
バイト列ってなんなの
バイト(byte)は 8bit のことです。 8bit は8桁の2進数のことです。
'00000000' # 10進数では0 16進数でも0
'11111111' # 10進数では255 16進数ではff
バイト列というのは、この 8bit が並んでるもののことです。
# こういうこと。
'000000001111111100000000' # 2進数で
'00ff00' # 16進数で
Python ではバイト列を以下のように表現します。
# `\x` は16進数を表しています。
b'\x00\xff\x00'
# '00ff00' からの変換方法。
bytes.fromhex('00ff00')
そんなわけで、文字をこんなん(b'\x00\xff\x00'
)で表現したものが文字コード、だということになります。
実際の例
文字をバイト列に変換する方式はいくつかあり、そのひとつが UTF-8 という方式。
Python ではこんな風に変換できます。
print( 'a'.encode('UTF-8') ) # b'a'
print( 'ă'.encode('UTF-8') ) # b'\xc4\x83'
print( 'あ'.encode('UTF-8') ) # b'\xe3\x81\x82'
print( '🅰'.encode('UTF-8') ) # b'\xf0\x9f\x85\xb0'
この通り、文字とバイト列が対応しているのがわかります。