4.9.2 標準エンコーディング

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

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

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 全ての言語
utf_8 U8, UTF, utf8 全ての言語

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

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