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

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

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

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

Codec | 別名 | 言語
--- | --- | ---

ascii | 646, us-ascii | 英語

big5 | big5-tw, csbig5 | 繁体字中国語

big5hkscs | big5-hkscs, hkscs | 繁体字中国語

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 | デンマーク、ノルウェー

cp866 | 866, IBM866 | ロシア語

cp869 | 869, CP-GR, IBM869 | ギリシャ語

cp874 |  | タイ語

cp875 |  | ギリシャ語

cp932 | 932, ms932, mskanji, ms-kanji | 日本語

cp949 | 949, ms949, uhc | 韓国語

cp950 | 950, ms950 | 繁体字中国語

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 | ベトナム

euc_jp | eucjp, ujis, u-jis | 日本語

euc_jis_2004 | jisx0213, eucjis2004 | 日本語

euc_jisx0213 | eucjisx0213 | 日本語

euc_kr | euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001 | 韓国語

gb2312 | chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, gb2312-80, iso-ir-58 | 簡体字中国語

gbk | 936, cp936, ms936 | 簡体字中国語

gb18030 | gb18030-2000 | 簡体字中国語

hz | hzgb, hz-gb, hz-gb-2312 | 簡体字中国語

iso2022_jp | csiso2022jp, iso2022jp, iso-2022-jp | 日本語

iso2022_jp_1 | iso2022jp-1, iso-2022-jp-1 | 日本語

iso2022_jp_2 | iso2022jp-2, iso-2022-jp-2 | 日本語, 韓国語, 簡体字中国語, 西欧, ギリシャ語

iso2022_jp_2004 | iso2022jp-2004, iso-2022-jp-2004 | 日本語

iso2022_jp_3 | iso2022jp-3, iso-2022-jp-3 | 日本語

iso2022_jp_ext | iso2022jp-ext, iso-2022-jp-ext | 日本語

iso2022_kr | csiso2022kr, iso2022kr, iso-2022-kr | 韓国語

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 | 西ヨーロッパ

johab | cp1361, ms1361 | 韓国語

koi8_r |  | ロシア語

koi8_u |  | ウクライナ

mac_cyrillic | maccyrillic | ブルガリア、ベラルーシ、マケドニア、ロシア、セルビア

mac_greek | macgreek | ギリシャ

mac_iceland | maciceland | アイスランド

mac_latin2 | maclatin2, maccentraleurope | 中央および東ヨーロッパ

mac_roman | macroman | 西ヨーロッパ

mac_turkish | macturkish | トルコ語

ptcp154 | csptcp154, pt154, cp154, cyrillic-asian | カザフ

shift_jis | csshiftjis, shiftjis, sjis, s_jis | 日本語

shift_jis_2004 | shiftjis2004, sjis_2004, sjis2004 | 日本語

shift_jisx0213 | shiftjisx0213, sjisx0213, s_jisx0213 | 日本語

utf_16 | U16, utf16 | 全ての言語

utf_16_be | UTF-16BE | 全ての言語 (BMP only)

utf_16_le | UTF-16LE | 全ての言語 (BMP only)

utf_7 | U7, unicode-1-1-utf-7 | 全ての言語

utf_8 | U8, UTF, utf8 | 全ての言語

utf_8_sig |  | 全ての言語

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

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

Codec | 別名 | 被演算子の型 | 目的
--- | --- | --- | ---

base64_codec | base64, base-64 | byte string | 被演算子を MIME base64 に変換します。

bz2_codec | bz2 | byte string | 被演算子をbz2を使って圧縮します。

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