UTF-8のエンコーディング

UTF-8の文字エンコーティング

文字エンコーティングは、簡単にいえばテキストがどの文字コード規格を使っているかということを示すものです。ファイルの中のテキストを「日本語の文字」といった時、そのテキストがどのような文字コード規格を使っているかを示しているわけではありません。日本語を扱う文字コード規格としてこれまで使われてきた代表的なものといえばSJIS、EUC、ISO-2022-JP、UTF-8などがあります。ファイルのテキストがSJISで書かれたものを、EUCの文字コード体系のシステムで表示すると、いわゆる「文字化け」ということが発生します。

バイナリーと文字列

Pythonではバイナリー(バイト列)と文字列を明確に分離しています。文字列には、どの文字コード規格を使うかも指定する必要があります。ここではデフォルトの文字コードがUTF-8のシステムでソースコードを編集しているため、これをバイナリー(クラスbytes)にするためにクラスstrのメソッドencode()でutf-8を指定して変換をかけています。その反対にバイナリーをUTF-8に変換するために、decode()でutf-8を指定して変換をしています。

utf8sample.py


##  File: utf8sample.py

# 文字列をバイナリーにする
# バイナリーを文字列にする
#
# 文字列はUTF-8がデフォルトであることが前提

orig_s='こんにちは世界'

# バイナリーに変換する
x=orig_s.encode('utf-8')
print(x)

# バイナリーをUTF-8の文字列にする
s=x.decode('utf-8')
print(s)

トップページ