ISO-2022-JP

ISO-2022-JP (文字コード)

[22] ISO-2022-JP は、かつて日本で用いられた文字コードの1つでした。

[23] 電子メールネットニュースでは日本標準文字コードとされていました。

代替

[25] 電子メールでは、世界的な流れにやや遅れて日本語メールでもなし崩し的に UTF-8 に移行が完了しつつあります。

[24] Web でも一時使われましたが、主流にはなりませんでした。 当時はシフトJIS日本語EUCがよく使われました。 現在は UTF-8 が使われています。

[26] ネットニュースは衰退しました。

符号化方式

[21]

ISO-IR#符号化文字集合指示
6ASCIIESC 02/08 [(] 04/02 [B]
14JISX0201 Roman setESC 02/08 [(] 04/09 [J]
42JISX0208-1978ESC 02/04 [$] 04/00 [@]
87JIS X 0208-1983ESC 02/04 [$] 04/02 [B]

※[PRACTICE] は、実際の習慣

歴史

もともと JUNET での通信用符号として決められました。 そもそもは漢字コードには JIS のものを使う, という緩い取り決め しかなかったようです。

最初は JIS の不具合で、 JIS X 0201 Roman 集合の指示に ESC 02/08 <(> 04/07 (H) を使っていましたが、正しい ESC 02/08 <(> 04/09 (J) に改めました。その時により細かい点が 合意されて、現在の ISO-2022-JP とほぼ同じ文字コード が出来上がりました。 JUNETの手引きの漢字コードの説明が それをまとめたものです。 (この文字コードは JUNET コード と呼ばれるようになりました。) (1987年頃)

1993年頃、 ietf-822ext では MIME の制定が進められていました。その時に JUNET コードを MIME で使えるように登録することになりました。 その名前は当初はそのまま "junet-code" とする案でしたが、 結局 ISO-2022-JP になりました。この文書が RFC 1468 <urn:ietf:rfc:1468> です。 RFC 1468 は JUNET コードを より厳密に定義しなおしました。

1993年、 RFC 1468 に日本語以外の文字集合を追加した多言語拡張, ISO-2022-JP-2ISO-2022-INT-1 が定義されました。 (1997年には RFC 2237 で、 RFC 1468 + JISX0201ISO-2022-JP-1 が定義されました。)

1997年には JISX0208 が改正され、附属書2 RFC 1468 符号化表現 (規定) として JIS で標準化されました。 これは RFC 1468 で定義された符号を JIS のほかの規格・規定 と整合するようにしたものです。かなり無理がたたって、 結局 RFC 1468 とは別物になってしまったという説まであります。

1998年頃、 RFC 1468 の改訂 Internet-Draft draft-yamamoto-charset-iso-2022-jp がかかれました。 <urn:ietf:id:draft-yamamoto-charset-iso-2022-jp-02> RFC 1468 には幾つか不具合が見つかっていましたし、 その後の JIS の改訂や ietf-822RFC822 改訂案 (後の RFC2822) に比べると RFC 1468 は時代遅れになってました。

bis1468 は厳密な規定・解釈が求められるようになってきた 時代背景を反映して、一層規定が厳密になりました。 しかし IETF RFC になることなく expire されました。

2000年には JISX0213:2000 が制定され、 附属書2 ISO-2022-JP-3 符号化表現では ISO-2022-JP と似た構造を持つ ISO-2022-JP-3 が定義されました。 ただし、 ISO-2022-JP-3 は ISO-2022-JP や JUNET コードとは 互換性が全くありません。

ISO/IEC 2022 への適合性

ISO-2022-JPのISO/IEC 2022適合性

参考文献

[JUNET]
『JUNET 利用の手引き第1版』 (See JUNETの手引きの漢字コードの説明)
[RFC1468]
“Japanese Character Encoding for Internet Message”, IETF RFC 1468, <urn:ietf:rfc:1468>
[RFC1554]
ISO-2022-JP-2: Multilingual Extension to ISO-2022-JP”, IETF RFC 1554, <urn:ietf:rfc:1554>
[RFC2237]
“Japanese Character Encoding for Internet Message”, IETF RFC 2237, <urn:ietf:rfc:2237> (See ISO-2022-JP-1)
[BIS1468]
“Japanese Character Encoding for Internet Message”, IETF Internet-Draft, <urn:ietf:id:draft-yamamoto-charset-iso-2022-jp-02>
[JISX0208]
『7ビット及び8ビットの2バイト情報交換用符号化漢字集合』, JISX0208:1997

IANA charset ISO-2022-JP

[7] IANAcharset登録簿には、2006年3月現在

Name: ISO-2022-JP  (preferred MIME name)               [RFC1468,Murai]
MIBenum: 39
Source: RFC-1468 (see also RFC-2237)
Alias: csISO2022JP
とあり、charset ISO-2022-JPの定義はRFC 1468とされています。

なぜかISO-2022-JP-1の定義RFC 2237も参照されています。 RFC 2237著者が当初ISO-2022-JP-1ISO-2022-JPという名前にしようとしていたことと関係があるのでしょうか?

文字符号化ISO-2022-JP (XML)

[4] XML 1.0およびXML 1.1の仕様書 <IW:XML1:"#charencoding"> では、 符号化宣言 (encoding擬似属性) の値ISO-2022-JPSHOULD be used for the various encoded forms of JIS X-0208-1997とされています。

これをどう解釈するべきかははっきりしませんが、 JIS X 0208:1997 附属書2 (規定) RFC 1468符号化表現の参考にインターネットISO-2022-JPと呼ばれている旨の記述がありますから、 この符号化文字集合を指していると考えるのがもっともらしいでしょう。

[11] >>10ISO-2022-JP ですが、たまにシフトJISが混入しています。 WinIE は意図通りに表示しますが、Firefox / Chrome (Windows) ではシフトJIS部分が文字化け (U+FFFD 化) します。

メモ

[3] WinNC4 は ESC ( J で出力します。 (ある意味正しい。)

[6] 昔からよくある不正な ISO-2022-JP 各種 (JIS X 0201 片仮名が ESC ( I とか SI/SO とか8ビットとかで混ざっている奴)、 まともに RFC 1468 を実装していたら当然未対応なわけですけど、 一応別の文字コード復号の選択肢として用意しておいて欲しいですよね。 日本語向け MUA なら。

妙に一部だけ文字化けしたメイルが多いと思ったら、こういうわけでしたよ (ほとんど spam でしたけど)。 (名無しさん 2004-08-23 05:41:37 +00:00)

[8] Web Applications 1.0 r6646 Define compatibility mapping for ISO-2022-JP. ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=6645&to=6646>

[9] 吉野家HDと高島屋が日本語UTF-8メール普及コンソーシアムを設立 | スラッシュドット・ジャパン IT ( ( 版)) <http://it.slashdot.jp/story/12/03/31/2322209/>

[12] Remove JIS X 0212 from iso-2022-jp per https://www.w3.org/Bugs/Public/sh... · 5a20290 · whatwg/encoding ( ( 版)) <https://github.com/whatwg/encoding/commit/5a2029026a013a1b9fd871f261dfa4059c96d746>

[13] Rewrite iso-2022-jp https://www.w3.org/Bugs/Public/show_bug.cgi?id=27256 · 19b0ebf · whatwg/encoding ( ( 版)) <https://github.com/whatwg/encoding/commit/19b0ebf0e48c3a607ab7623b5b272642dd59d6e7>

[5] Treat U+2022 as U+FF0D in Japanese encoders. Fixes https://www.w3.org… · whatwg/encoding@a7ab97e ( 版) <https://github.com/whatwg/encoding/commit/a7ab97e891773bd7a564b463c6a1cc31196a5bdd>

[14] Fix #21: Japanese encoders have special treatment for U+2212, not U+2022 · whatwg/encoding@95f85a6 ( 版) <https://github.com/whatwg/encoding/commit/95f85a63ad4d6b6331f21ff60f9244b3bcbe6d84>

[15] 2007/04/27 日記: Java: Outlook 風の JISコード (ISO-2022-JP) を利用するための x-windows-iso2022jp というエンコーディング ( 版) <http://homepage2.nifty.com/igat/igapyon/diary/2007/ig070427.html>

拡張 ISO-2022-JP (MS932 ベース)

※ ちなみに CP50220 と x-windows-iso2022jp とは Javaにおいて挙動が異なりました。(エイリアスではありませんでした)

また更に便利なことに、x-windows-iso2022jp では 重複符号化領域のコードについても、適切に Outlook風のUnicodeマッピングを行ってくれます。

[16] フィーチャーフォンについて | KDDI Mobile ( 版) <http://www.kddimobile.com/faqs/faq_featurephone/>

Eclipseの対応する日本語用文字コードは以下になります。

iso-2022-jp (x-windows-iso2022jp)

shift-jis (windows-31j)

euc-jp

utf-8

iso-8859-1

送信は全てiso-2022-jp

[17] 【TKMP.dl】x-windows-iso2022jp対応 ( 版) <http://uwa.potetihouse.com/bbs/patio.cgi?mode=past&no=401>

?x-windows-iso2022jp?B?といったJavaMailのエンコードに対応頂けませんでしょうか?

[18] Fix #15: prevent ISO-2022-JP encoder attack · whatwg/encoding@f9540e5 ( 版) <https://github.com/whatwg/encoding/commit/f9540e53e72c3b455708a05e5ff5c7a552a5a733>

[19] Update integration with Encoding Standard · whatwg/html@6a31c26 ( 版) <https://github.com/whatwg/html/commit/6a31c26cf12e39dab1a488e75dd56c03d6786d39>

[20] Editorial: avoid upsetting lazy compilers (#55) ( (annevk著, )) <https://github.com/whatwg/encoding/commit/9f7252a08211a623cabc5fe6b03dda7f0cc9ef11>

[27] Note >8835 pointers in index jis0208 cannot be reached (annevk著, ) <https://github.com/whatwg/encoding/commit/fb87552bfa03cc93a1077c8f13e2f58535d0e97c>

[28] Thunderbird/SeaMonkey の既定のテキストエンコーディングを UTF-8 に変更する · Issue #63 · mozilla-japan/gecko-l10n () <https://github.com/mozilla-japan/gecko-l10n/issues/63>

[29] Document minimal implementation requirements (annevk著, ) <https://github.com/whatwg/encoding/commit/9323530fae940d95b2c0b9f00a6a654bd2097aff>

[30] 563283 - Perform Hankaku to Zenkaku conversion in ISO-2022-JP encoder () <https://bugzilla.mozilla.org/show_bug.cgi?id=563283>