## 4.9.2 標準エンコーディング

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

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

- ISO 8859 コードセット
- Microsoft Windows コードページで、8859 コード形式から導出されて いるが、制御文字を追加のグラフィック文字と置き換えたもの
- IBM EBCDIC コードページ
- ASCII 互換の IBM PC コードページ

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 を用いて圧縮します。