このメモはインターネット・コミュニティーのために情報を提供するものである。 このメモはいかなる種類のインターネット標準をも定めない。 このメモの配布に制限はない。
この文書では、インターネット・メール・メッセージ [RFC822] のヘッダー部分および本文部分の双方において韓国語の文字を表現するのに用いられる符号化方法について説明する。
この文書ではまた、MIME [MIME1, MIME2] のメッセージ・ヘッダーおよび本文のフォーマットに適合させるために用いられる符号化方法の名前についても記述する。
この文書ではプレーン・テキストの符号化方法についてのみ記述する。 それ以外のテキストの亜種、すなわちリッチ・テキストやそれに類する形式のテキストは、この文書の埒外にある。
メッセージの開始時のコードは ASCII であると仮定される。 ASCII 文字と韓国語文字とはシフト機能を利用することにより区別できる。 たとえば、SO コードは次に来るバイト列が KSC 5601 に定義されている韓国語文字であるとの注意を喚起する。 ASCII へ戻るには SI コードが用いられる。
したがって、ひとつのメッセージ中に用いられるエスケープ・シーケンス、シフト機能、および文字集合は、以下のようになる。
SO | KSC 5601 | |
SI | ASCII | |
ESC $ ) C | SO 文字の出現の前に行の最初に一度だけ現れる。 |
ハングル、ハンジャ (中国語の表意文字)(1)、図形文字、外国文字などを収容する KSC 5601 [KSC5601] 文字集合は、各文字が 2 バイトの長さをもつ。
韓国語文字集合の詳細については KSC 5601-1987 の文書を参照されたい。 また、エスケープ・シーケンスおよびシフト機能に関するより詳細な情報は ISO 2022 [ISO2022] の文書に求められる。
本文書が形式的構文と解説部とで一致しない場合には、形式的構文のほうを優先すべきである。
本文書のこの章における表記法は、STD 11 すなわち RFC 822 [RFC822] で用いられているものに従っており、同じ意味をもつ。
アステリスク (*) は次の意味をもつ。
l*m "anything"
これは "anything" が少なくとも l 回、多くとも m 回使用されることを意味する。 l および m のデフォルト値はそれぞれ 0 および無限大である。
body = *e-line *1( designator *( e-line / h-line )) designator = ESC "$" ")" "C" e-line = *text CRLF h-line = *text 1*( segment *text ) CRLF segment = SO 1*( one-of-94 one-of-94 ) SI ; ( 8進, 10進.) ESC = <ISO 2022 ESC, escape> ; ( 33, 27.) SO = <ASCII SO, shift out> ; ( 16, 14.) SI = <ASCII SI, shift in> ; ( 17, 15.) SP = <ASCII SP, space> ; ( 40, 32.) one-of-94 = <94 文字の集合の任意の文字> ; (41-176, 33.-126.) CHAR = <任意の ASCII 文字> ; ( 0-177, 0.-127.) text = <任意の CHAR, ただし裸の CR および裸の LF は 含むが CRLF は含まず, ESC, SI, SO も含まない>
本文におけるハングルの符号化方式の名前は「ISO-2022-KR」である。 この名前は MIME メッセージ形式の中で用いられる際には次のようになろう。
Content-Type: text/plain; charset=iso-2022-kr
ハングルの符号化は本質的に 7 ビット形式でなされるため、Content-Transfer-Encoding ヘッダーは使う必要がない。 しかしながら、ハングル符号化法を使用するかぎり、現在のハングル・メッセージを扱うソフトウェアが、符号化済みのハングル・メッセージをさらに符号化する Base64 符号化法や Quoted-Printable 符号化法をサポートすることはない。
メッセージのヘッダー部分において符号化されるハングルは韓国語 EUC [EUC-KR] である。 EUC-KR 符号化法では、8 番目のビットの立てられているバイトが KSC-5601 の文字と認識されることになる。 ヘッダー部分でハングルを使用するには、RFC 1522 で提案されている方法に従い、"B" 符号化法ないし "Q" 符号化法によりハングルを符号化する。 その場合、用いるべき名前は EUC-KR となろう。
ハングル符号化システムは、4/4 のアナウンスによる ISO 2022 [ISO2022] 環境に基づいている。 ただし、そのアナウンスのエスケープ・シーケンスはハングル符号化法には含まれない。
本文書で用いている KSC 5601 は、定義により、KSC 5601-1987、KSC 5601-1989、および KSC 5601-1992 の 94×94 オクテット定義と同一のものである。 ひいては、KSC-5601 を参照する 1992 年以降のいかなる改訂版も同じ意味をもつと見做されるべきである。
現在のハングル符号化システムは、かつて UNIX ユーザーの間で広く使われていた「N バイト・ハングル」(N-Byte Hangul) での経験に基づいている。 実際、SO および SI を利用する「N バイト・ハングル」符号化法は、KSC 5601 が国家標準となる前は SDN(2) で使われていた符号化方法なのである。
本コードは、ハングル・メッセージによる情報交換に利用されることを意図したものである。 それ以外のいかなる利用法も適切なこととは考えられていない。
[ASCII] | American National Standards Institute, "Coded character set -- 7-bit American national standard code for information interchange", ANSI X3.4-1968 |
[ISO2022] | International Organization for Standardization (ISO), "Information processing -- ISO 7-bit and 8-bit coded character sets -- Code extension techniques", International Standard, 1986, Ref. No. ISO 2022-1986 (E). |
[KSC5601] | Korea Industrial Standards Association, "Code for Information Interchange (Hangul and Hanja)," Korean Industrial Standard, 1987, Ref. No. KS C 5601-1987.(3) |
[EUC-KR] | Korea Industrial Standards Association, "Hangul Unix Environment," Korean Industrial Standard, 1992, Ref. No. KS C 5861-1992.(4) |
[RFC822] | Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982. |
[MIME1] | Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions): Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1521, Bellcore, Innosoft, September 1993.(5) |
[MIME2] | Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text", RFC 1522, University of Tennessee, September 1993.(6) |
セキュリティーの問題はこのメモでは議論しない。
この文書の執筆を支援してくれたすべての人々に謝意を表したい。 とりわけ、Erik von der Poel、Felix M. Villarreal、Ienup Sung、Kyoung Namgoong、そして Kyuho Kim の各氏には感謝申し上げる。
Uhhyung Choi
Korea Advanced Institute of Science and Technology
Department of Computer Science
Taejon, 305-701, Republic of Korea
Phone: +82-42-869-8718
Fax: +82-42-869-3510
EMail: uhhyung@kaist.ac.kr
Kilnam Chon
Korea Advanced Institute of Science and Technology
Department of Computer Science
Taejon, 305-701, Republic of Korea
Phone: +82-42-869-3514
Fax: +82-42-869-3510
EMail: chon@cosmos.kaist.ac.kr
Hyunje Park
Solvit Chosun Media, Inc.
748-16 Yeoksam-Dong, Kangnam-Gu
Seoul, 135-080, Republic of Korea
Phone: +82-2-561-0361
Fax: +82-2-569-4847
EMail: hjpark@dino.media.co.kr
(1) | 「ハンジャ」は「漢字」の朝鮮語読み。 | |
(2) | SDN は System Development Network の略で、KAIST (Korea Advanced Institute of Science and Technology、韓国科学技術院) の研究開発用ネットワーク。 | |
(3) | KS C 5601 は改称され、現在は KS X 1001 となっている。 | |
(4) | KS C 5861 は改称され、現在は KS X 2901 となっている。 | |
(5) | RFC 1521 の後継となる RFC 2045 が発行されている。 | |
(6) | RFC 1522 の後継となる RFC 2047 が発行されている。 |
※ 原文における明らかな誤りは訂正した。