电脑技术学习

RFC1557 - Korean Character Encoding for Internet Messages

dn001

  Network Working Group U. Choi
Request for Comments: 1557 K. Chon
Category: Informational KAIST
H. Park
Solvit Chosun Media
December 1993

Korean Character Encoding for Internet Messages

Status of this Memo

This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.

IntrodUCtion

This document describes the encoding method being used to represent
Korean characters in both header and body part of the Internet mail
messages [RFC822]. This encoding method was specified in 1991, and
has since then been used. It has now widely being used in Korean IP
networks.

This document also describes the name of the encoding method which is
to be used in order to match the message header and body format of
MIME [MIME1, MIME2].

This document describes only the encoding method for plain text.
Other text suBTypes, rich text and similar forms of text, are beyond
the scope of this document.

Description

It is assumed that the starting code of the message is ASCII. ASCII
and Korean characters can be distinguished by use of the shift
function. For example, the code SO will alert us that the upcoming
bytes will be a Korean character as defined in KSC 5601. To return
to ASCII the SI code is used.

Therefore, the escape sequence, shift function and character set used
in a message are as follows:

SO KSC 5601
SI ASCII
ESC $ ) C Appears once in the beginning of a line
before any appearance of SO characters.

The KSC 5601 [KSC5601] character set that includes Hangul, Hanja
(Chinese ideographic characters), graphic and foreign characters,
etc., is two bytes long for each character.

For more information about Korean character sets please refer to the
KSC 5601-1987 document. Also, for more detailed information about
the escape sequence and the shift function you can look for the ISO
2022 [ISO2022] document.

Formal Syntax

Where this document in its formal syntax does not agree with the
description part, priority should be given to the formal syntax of
the document.

The notations used in this section of the document are according to
those used in STD 11, RFC822 [RFC822] with the same meaning.

* (asterisk) has the following meaning :
l*m "anything"

The above means that "anything" has to be used at least l times and
at most m times. Default values for l and m are 0 and infinitive,
respectively.

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

; ( Octal, Decimal.)

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 = <any char in 94-char set> ; (41-176, 33.-126.)

CHAR = <any ASCII character> ; ( 0-177, 0.-127.)

text = <any CHAR, including bare CR & bare LF, but NOT
including CRLF, and not including ESC, SI, SO>

MIME and RFC1522 Considerations

The name to be used for the Hangul encoding scheme in the contents is
"ISO-2022-KR". This name when used in MIME message form would be:

Content-Type: text/plain; charset=iso-2022-kr

Since the Hangul encoding is done with 7 bit format in nature, the
Content-Transfer-Encoding-header does not need to be used. However,
while using the Hangul encoding, current Hangul message softwares
does not support Base64 or Quoted-Printable encoding applied on
already encoded Hangul messages.

The Hangul encoded in the header part of the message is Korean EUC
[EUC-KR]. In the EUC-KR encoding, the bytes with 8th bit set will be
recognized as KSC-5601 characters. To use Hangul in the header part,
according to the method proposed in RFC1522, the encoded Hangul are
"B" or "Q" encoded. When doing so, the name to be used will be EUC-
KR.

Background Information

The Hangul encoding system is based on the ISO 2022 [ISO2022]
environment according to its 4/4 announcement. However, the Hangul
encoding does not include the announcement's escape sequence.

The KSC 5601 used in this document is, in definition, identical to
the KSC 5601-1987, KSC 5601-1989 and KSC 5601-1992's 94x94 octet
definition. Therefore, any revision that refers to KSC-5601 after
1992 is to be considered as having the same meaning.

At present, the Hangul encoding system is based on the eXPerience
acquired from the former widely used "N-Byte Hangul" among UNIX
users. Actually, the encoding method, "N-Byte Hangul", using SO and
SI was the encoding method used in SDN before KSC 5601 was made a
national standard.

This code is intended to be used for the information interchange of
Hangul messages; any other use of the code is not considered
appropriate.

References

[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.

[EUC-KR] Korea Industrial Standards Association, "Hangul Unix
Environment," Korean Industrial Standard, 1992, Ref. No.
KS C 5861-1992.

[RFC822] Crocker, D., "Standard for the Format of ARPA Internet
Text Messages", STD 11, RFC822, 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", RFC1521, Bellcore, Innosoft, September 1993.

[MIME2] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
Part Two: Message Header Extensions for Non-ASCII Text",
RFC1522, University of Tennessee, September 1993.

Security Considerations

Security issues are not discussed in this memo.

Acknowledgments

The authors wants to thank all the people who assisted in writing
this document. In particular, we thank Erik von der Poel, Felix M.
Villarreal, Ienup Sung, Kyoung Namgoong, and Kyuho Kim.

Authors' Addresses

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