4.9.2 標準エンコーディング

Python には数多くの codec が組み込みで付属します。これらは C 言語の 関数、対応付けを行うテーブルの両方で提供されています。以下のテーブル では codec と、いくつかの良く知られている別名と、エンコーディング が使われる言語を列挙します。別名のリスト、言語のリストともしらみつぶしに 網羅されているわけではありません。大文字と小文字、またはアンダースコア の代りにハイフンにしただけの綴りも有効な別名です。

多くの文字セットは同じ言語をサポートしています。これらの文字セットは 個々の文字 (例えば、EURO SIGN がサポートされているかどうか) や、 文字のコード部分への割り付けが異なります。特に欧州言語では、 典型的に以下の変種が存在します:

Codec  別名  言語 
ascii 646, us-ascii イギリス
cp037 IBM037, IBM039 イギリス
cp424 EBCDIC-CP-HE, IBM424 ヘブライ
cp437 437, IBM437 イギリス
cp500 EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500 西ヨーロッパ
cp737   ギリシャ
cp775 IBM775 バルト沿岸国
cp850 850, IBM850 西ヨーロッパ
cp852 852, IBM852 中央および東ヨーロッパ
cp855 855, IBM855 ブルガリア、ベラルーシ、マケドニア、ロシア、セルビア
cp856   ヘブライ
cp857 857, IBM857 トルコ
cp860 860, IBM860 ポルトガル
cp861 861, CP-IS, IBM861 アイスランド
cp862 862, IBM862 ヘブライ
cp863 863, IBM863 カナダ
cp864 IBM864 アラビア
cp865 865, IBM865 デンマーク、ノルウェー
cp869 869, CP-GR, IBM869 ギリシャ
cp874   タイ
cp875   ギリシャ
cp1006   Urdu
cp1026 ibm1026 トルコ
cp1140 ibm1140 西ヨーロッパ
cp1250 windows-1250 中央および東ヨーロッパ
cp1251 windows-1251 ブルガリア、ベラルーシ、マケドニア、ロシア、セルビア
cp1252 windows-1252 西ヨーロッパ
cp1253 windows-1253 ギリシャ
cp1254 windows-1254 トルコ
cp1255 windows-1255 ヘブライ
cp1256 windows1256 アラビア
cp1257 windows-1257 バルト沿岸国
cp1258 windows-1258 ベトナム
latin_1 iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1 西ヨーロッパ
iso8859_2 iso-8859-2, latin2, L2 中央および東ヨーロッパ
iso8859_3 iso-8859-3, latin3, L3 エスペラント、マルタ
iso8859_4 iso-8859-4, latin4, L4 バルト沿岸国
iso8859_5 iso-8859-5, cyrillic ブルガリア、ベラルーシ、マケドニア、ロシア、セルビア
iso8859_6 iso-8859-6, arabic アラビア
iso8859_7 iso-8859-7, greek, greek8 ギリシャ
iso8859_8 iso-8859-8, hebrew ヘブライ
iso8859_9 iso-8859-9, latin5, L5 トルコ
iso8859_10 iso-8859-10, latin6, L6 北欧
iso8859_13 iso-8859-13 バルト沿岸国
iso8859_14 iso-8859-14, latin8, L8 ケルト
iso8859_15 iso-8859-15 西ヨーロッパ
koi8_r   ロシア
koi8_u   ウクライナ
mac_cyrillic maccyrillic ブルガリア、ベラルーシ、マケドニア、ロシア、セルビア
mac_greek macgreek ギリシャ
mac_iceland maciceland アイスランド
mac_latin2 maclatin2, maccentraleurope 中央および東ヨーロッパ
mac_roman macroman 西ヨーロッパ
mac_turkish macturkish トルコ
utf_16 U16, utf16 全ての言語
utf_16_be UTF-16BE 全ての言語 (BMP only)
utf_16_le UTF-16LE 全ての言語 (BMP only)
utf_7 U7 全ての言語
utf_8 U8, UTF, utf8 全ての言語

数多くの codec は Python 特有なので、それらの codec 名は Python の外では無意味なものとなります。これらの codec のいくつかは Unicode 文字列からバイト文字列への変換を行わず、むしろ単一の 引数をもつ全写像関数はエンコーディングとみなすことができるという Python codec の性質を利用しています。

以下に列挙した codec では、``エンコード'' 方向の結果は常にバイト文字列 方向です。``デコード'' 方向の結果はテーブル内の被演算子型として列挙 されています。

Codec  別名  被演算子の型  目的 
base64_codec base64, base-64 byte string 被演算子を MIME base64 に変換します
hex_codec hex byte string 被演算子をバイトあたり 2 桁の 16 進数の表現に変換します
idna   Unicode string RFC 3490 を実装しています。 バージョン2.3 以降で新規追加された 仕様です。 encodings.idna も参照してください
mbcs dbcs Unicode string Windows のみ: 被演算子を ANSI コードページ (CP_ACP) に従ってエンコードします
palmos   Unicode string PalmOS 3.5 のエンコーディングです
punycode   Unicode string RFC 3492 を実装しています。 バージョン2.3 以降で新規追加された 仕様です。
quopri_codec quopri, quoted-printable, quotedprintable byte string 被演算子を MIME quoted printable 形式に変換します
raw_unicode_escape   Unicode string Python ソースコードにおける raw Unicode リテラルとして 適切な文字列を生成します。
rot_13 rot13 byte string 被演算子のシーザー暗号 (Caesar-cypher) を返します
string_escape   byte string Python ソースコードにおける文字列リテラルとして適切な 文字列を生成します。
undefined   any 全ての変換に対して例外を送出します。 バイト列と Unicode 文字列との間で自動的な型強制をおこないたくない 時にシステムエンコーディングとして使うことができます。
unicode_escape   Unicode string Python ソースコードにおける Unicode リテラルとして適切な 文字列を生成します。
unicode_internal   Unicode string 被演算子の内部表現を返します。
uu_codec uu byte string 被演算子を uuencode を用いて変換します。
zlib_codec zip, zlib byte string 被演算子を gzip を用いて圧縮します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。