2004.08.22新規作成(1999.01.31の日記に加筆・修正)。2005.4.2加筆。
HTTPプロトコルなどで指定する文字コードのうち、日本語を扱えるメジャーなものを列挙する。
Content-Type: text/html; charset=EUC-JP
文字コードのMIME名はIANA CHARACTER SETSに書かれているものを使う。ただ、文字コードではないものが混ざっているので注意がいる。例えば JIS_C6220-1969-jp (JIS X 0201 片仮名用図形文字集合)など、通常単独では使われない符号化文字集合(coded character set; CCS)が含まれている。
CCSについては、次を参照;UTR#17: Character Encoding Model
JIS X 0211-1994 4.2.18、JIS X 0202:1998にも同じ定義がある。
以下、IANA CHARACTER SETS(2004.02.06現在)から引用し、コメントを付ける。
Name: | Shift_JIS (preferred MIME name)
|
---|---|
MIBenum: | 17 |
Source: | This charset is an extension of csHalfWidthKatakana by adding graphic characters in JIS X 0208. The CCS's are JIS X0201:1997 and JIS X0208:1997. The complete definition is shown in Appendix 1 of JIS X0208:1997. This charset can be used for the top-level media type "text". |
Alias: | MS_Kanji |
Alias: | csShiftJIS |
シフトJISのMIME名は「Shift_JIS
」を使う。しかし実際には, ここに書かれている定義では使えない。JIS X 0208:1997の「シフト符号化表現」では1バイト文字としてJIS X 0201ラテン文字用図形文字集合を使うことになっているが、本当にそのように実装すると、「¥」の扱いが困ったことになって実用的ではない。
通常は, Windows-31J
と見なす。
Name: | Extended_UNIX_Code_Packed_Format_for_Japanese | ||||||||
---|---|---|---|---|---|---|---|---|---|
MIBenum: | 18 | ||||||||
Source: | Standardized by OSF, UNIX International, and UNIX Systems
Laboratories Pacific. Uses ISO 2022 rules to select
| ||||||||
Alias: | csEUCPkdFmtJapanese | ||||||||
Alias: | EUC-JP (preferred MIME name)
|
Name: | ISO-10646-J-1 |
---|---|
Source: | ISO 10646 Japanese, see RFC 1815. |
ISO-10646-J-1
は、Unicodeのうち、JIS X 0208などで定義されている文字だけを使える、というもの。実際にはこのMIME名は使われていないように思う。
Name: | Windows-31J
|
---|---|
MIBenum: | 2024 |
Source: | Windows Japanese. A further extension of Shift_JIS
to include NEC special characters (Row 13), NEC
selection of IBM extensions (Rows 89 to 92), and IBM
extensions (Rows 115 to 119). The CCS's are
JIS X0201:1997, JIS X0208:1997, and these extensions.
This charset can be used for the top-level media type "text",
but it is of limited or specialized use (see RFC2278).
PCL Symbol Set id: 19K
|
Alias: | csWindows31J |
通常、「シフトJIS」と言うとこちらのコードを指す。1バイト文字は、実際には、JIS X 0201ではなくISO/IEC 646 IRVを用いる。0x5cの字形は「¥」だが、内部的にはバックスラッシュと見なす。
Name: | ISO-2022-JP (preferred MIME name) [RFC1468,Murai] |
---|---|
MIBenum: | 39 |
Source: | RFC-1468 (see also RFC-2237) |
Alias: | csISO2022JP |
ISO/IEC 2022 (JIS X 0202) を参考にして規定された文字コード(しかしISO/IEC 2022には適合していない)。
ISO/IEC 2022は手短に言えば、エスケープシーケンスによって、(1) 94n文字集合または96n文字集合をG0, G1, G2およびG3という仮の領域に割り当て(指示する (to designate) という。)、(2) さらにこのいずれかを0x20〜0x7fに呼び出す。以降、この2段階の操作によって0x20〜0x7fに見えている文字を使用する。「JIS X 0202:1998 9. 7ビット符号の構造」を参照。
一方、ISO-2022-JPでは、エスケープシーケンスによって、ISO/IEC 646 IRV(国際基準版)、JIS X 0201ラテン文字集合、JIS X 0208(旧JIS)、JIS X 0208(現行)の4つの文字集合を切り替える。改行文字などの制御文字は、IRVまたはラテン文字集合が利用できる状態のときのみ使える。
複数バイト図形文字をG0に指示するESC 2/4 F(ESC 2/4 2/8 Fではない。)というエスケープシーケンスによって制御文字が利用禁止になってしまうところがISO/IEC 2022に適合しない。
エスケープシーケンス | 意味 |
---|---|
1B 28 42 | ISO/IEC 646 IRVに切り替える |
1B 28 4A | JIS X 0201ラテン文字集合に切り替える |
1B 24 40 | JIS X 0208(旧JISにするための所要の入れ替えを行ったもの)に切り替える |
1B 24 42 | JIS X 0208に切り替える |
Name: | ISO-2022-JP-2 (preferred MIME name) [RFC1554,Ohta] |
---|---|
MIBenum: | 40 |
Source: | RFC-1554 |
Alias: | csISO2022JP2 |
ISO-2022-JP-2
はISO-2022-JP
を拡張して日本語以外の文字も使えるようにしたものだが、メジャーではない。というか見たことない。含んでいる文字集合は次のとおり。
94 character sets reg# character set ESC sequence designated to ------------------------------------------------------------------ 6 ASCII ESC 2/8 4/2 ESC ( B G0 42 JIS X 0208-1978 ESC 2/4 4/0 ESC $ @ G0 87 JIS X 0208-1983 ESC 2/4 4/2 ESC $ B G0 14 JIS X 0201-Roman ESC 2/8 4/10 ESC ( J G0 58 GB2312-1980 ESC 2/4 4/1 ESC $ A G0 149 KSC5601-1987 ESC 2/4 2/8 4/3 ESC $ ( C G0 159 JIS X 0212-1990 ESC 2/4 2/8 4/4 ESC $ ( D G0 96 character sets reg# character set ESC sequence designated to ------------------------------------------------------------------ 100 ISO8859-1 ESC 2/14 4/1 ESC . A G2 126 ISO8859-7(Greek) ESC 2/14 4/6 ESC . F G2
Name: | UTF-8 [RFC3629]
|
---|---|
MIBenum: | 106 |
Source: | RFC 3629 |
Alias: | None |
Unicodeを使う場合、通常はUTF-8を使う。