RFC 1815 INFORMATIONAL INTERNATIONALIZATION · CHARACTER SETS · MIME

Character Sets ISO-10646 and ISO-10646-J-1

Simplifying a universal character set for practical use by restricting it.

On rfc-editor.org ↗
PUBLISHED
July 1995
AUTHORS
M. Ohta
STREAM
Legacy
ISO-10646 ENCODING
16-bit big-endian
ISO-10646 COVERAGE
Latin characters only (0020-00FF)
ISO-10646-J-1 COVERAGE
Latin, Greek, Cyrillic, CJK symbols, Japanese Hiragana/Katakana, CJK ideographs
DOI
10.17487/RFC1815

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                            M. Ohta
Request For Comments: 1815                 Tokyo Institute of Technology
Category: Informational                                        July 1995


               Character Sets ISO-10646 and ISO-10646-J-1

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.

Abstract

   Though the ISO character set standard of ISO 10646 is specified
   reasonably well about European characters, it is not so useful in an
   fully internationalized environment.

   For the practical use of ISO 10646, a lot of external profiling such
   as restriction of characters, restriction of combination of
   characters and addition of language information is necessary.

   This memo provides information on such profiling, along with charset
   names to each profiled instance.

   Though all the effort is done to make the resulting charset as useful
   10646 based charset as possible, the result is not so good.  So, the
   charsets defined in this memo are only for reference purpose and its
   use for practical purpose is strongly discouraged.

Introduction

   This memo describes two text encoding schemes based on ISO 10646
   [10646].

   As ISO 10646 specifies too little about how text is visualized, to
   practically use ISO 10646, it is necessary to restrict the standard
   minimally and then add some amount of profiling information.

   For ISO 2022 [ISO2022] based national standards, sufficient profiling
   information is provided by national standardization bodies, but, for
   ISO 10646, such a profiling is not yet provided.

   As the profiling of ISO 10646 largely affects which character or
   combination of characters could be properly displayed, changes of
   profiling of ISO 10646 are as significant as additions of new
   character sets of ISO 2022.

   That is, it's impractical to support the entirety of ISO 10646 (new
   restriction or profiling can always be added), so a client needs to
   know whether some restriction or profiling is being used before it
   can decide whether to display the body part. Thus, it is necessary to
   provide multiple charset names to each variation of ISO 10646.

   For example, in Japan with Japanese windows NT, only those Han
   characters already supported by MS Kanji code (mostly equivalent to
   JIS X 0208 [JISX0208]) can be displayed, because no other font
   pattern is commonly provided.

   The other problem of ISO 10646 for Han characters is that, to display
   them in quality required for daily plain text processing in
   China/Japan/Korea, it is necessary to add profiling information on
   which one of Chinese/Japanese/Korean the text is using.  It should be
   noted that this feature makes multilingual mixed
   Chinese/Japanese/Korean text with ISO 10646 impractical.

   Also, just as [RFC1521] was unclear about how bi-directionality
   should be supported with "ISO-8859-6" and "ISO-8859-8" which was
   corrected by [RFC1556], it is also unclear how bi-directionality
   could be supported with ISO 10646.  There are too much ways to
   support bi- directionality.  So, until some bi-directionality
   mechanism(s) becomes widely supported, it is necessary to exclude
   characters for languages which requires bi-directionality support
   from the minimal variation.  It should be noted that, though ISO
   10646 is intended to be free from long term states, save for some
   profiling information, introduction of bi-directionality with ISO
   10646 do requires the long term states.

   Combining characters also cause problems. In many countries where
   combining characters based on [ISO2022] is used, there are
   restrictions on how combining characters are ordered [TIS].  Without
   such restriction, the result of combination is completely meaningless
   which is the current state of ISO 10646.  That is, if some
   combination is allowed in some implementation while the other does
   not support it, communication between them is difficult unless ISO
   10646 is profiled to be least common set of widely supported
   combinations.  So, again, until combination restriction will be
   developed for each language, it is necessary to exclude characters
   for such languages from the minimal variation.

   Conjoining characters also, may or may not be supported, which
   requires another profiling.

   According to those considerations, this memo defines two variations
   of ISO 10646. They are "ISO-10646" as the minimal basic variation and
   "ISO-10646-J-1" as the variation which could be useful in Japan.

   Finally, this memo, by no means, promotes the use of ISO 10646 on the
   Internet.  It's use is strongly discouraged, when there are other
   charsets which can encode the same information, Families of ISO 10646
   based charsets, like ISO 2022 based charsets, only forms set of
   mutually incompatible encoding systems and, unlike ISO 2022 based
   charsets [2022INT], they can not be merged together to be the single
   world wide charset.

Description of "ISO-10646"

   ISO-10646 is profiled to be the most basic part of the family of
   encodings based on ISO 10646 and contains the following minimal
   graphic characters:

      collection number and name      positions      further restriction
      ------------------------------------------------------------------
      1 BASIC LATIN                   0020-007E
      2 LATIN-1 SUPPLEMENT            00A0-00FF

   C0 and C1 control characters may also be used as specified in the
   section 16 of ISO 10646.

   The text with "ISO-10646" encodes text in 16 bit big endian form.

   As no combining characters are included, "ISO-10646" can be used with
   applications at implementation level 1.

   Left-to-right directionality should be used.

   The encoding is implemented by Windows/NT.

   For practical communication, use of "ISO-10646" is discouraged.
   "ISO-8859-1" [RFC1345] should be used instead.

Description of "ISO-10646-J-1"

   ISO-10646-J-1 is profiled to be useful for Japanese PC users who use
   Japanese version of Windows/NT and contains the following graphic
   characters:

      collection number and name         positions  further restrictions
      ------------------------------------------------------------------
      1 BASIC LATIN                      0020-007E
      2 LATIN-1 SUPPLEMENT               00A0-00FF
      8 BASIC GREEK                      0370-03CF
      10 CYRILLIC                        0400-04FF
      32 GENERAL PUNCTUATION             2000-206F  See note 1, below.
      39 MATHEMATICAL OPERATORS          2200-22FF  See note 1, below.
      44 BOX DRAWING                     2500-257F
      49 CJK SYMBOLS AND PUNCTUATION     3000-303F  See note 1, below.
      50 HIRAGANA                        3040-309F
      51 KATAKANA                        30A0-30FF
      60 CJK UNIFIED IDEOGRAPHS          4E00-9FFF  See note 1, below.
      62 CJK COMPATIBILITY IDEOGRAPHS    F900-FAFF  See note 1, below.
      66 CJK COMPATIBILITY FORMS         FE30-FE4F
      69 HALFWIDTH AND FULLWIDTH FORMS   FF00-FFEF

   Note 1: Most of the characters are excluded.  That is, only those
   characters of JIS X 0208 [JISX0208] are included. The reason is that
   the Japanese version of Windows/NT have fonts for them only and most
   of the users can not read messages which contains other characters.

   C0 and C1 control characters may also be used as specified in the
   section 16 of ISO 10646.

   The text with "ISO-10646-J-1" encodes text in 16 bit big endian form.

   Shapes of Han characters should be of Japanese Han, that is, those of
   column "J" in section 26 of ISO 10646.

   As no combining characters are included, "ISO-10646-J-1" can be used
   with applications at implementation level 1.

   Characters in "HALFWIDTH AND FULLWIDTH FORMS" compared to be
   different characters to the normal width characters.

   When text is displayed horizontally, left-to-right directionality
   should be used.

   For practical communication, use of "ISO-10646-J-1" is discouraged.
   ISO-2022-JP" [2022JP] should be used instead.

MIME Considerations

   The names given to the character encoding methods described in this
   memo are, respectively, "ISO-10646" and "ISO-10646-J-1".  This name
   is intended to be used in MIME messages as follows:

                Content-Type: text/plain; charset=iso-10646

   The ISO-10646 and ISO-10646-J-1 encoding are in 16-bit form, so it is
   often necessary to use a Content-Transfer-Encoding header.  Base64
   should be useful.

   The ISO-10646 and ISO-10646-J-1 may also be used in MIME Part 2
   headers [RFC1522].  The "B" encoding should be used with them.

References

   [10646]     International Organization for Standardization (ISO),
               "Universal Multiple-Octet Coded Character Set (UCS)",
               International Standard, Ref. No. ISO/IEC 10646-1:1993
               (E).

   [2022INT]   (An Internet Draft "draft-ohta-text-encoding-*.txt" may
               be available).

   [2022JP]    Murai, J., Crispin, M., and E. van der Poel, "Japanese
               Character Encoding for Internet Messages", RFC 1468, June
               1993.

   [ISO2022]   International Organization for Standardization (ISO),
               "Information processing -- ISO 7-bit and 8-bit coded
               character sets -- Code extension techniques",
               International Standard, Ref. No. ISO 2022-1986 (E).

   [JISX0208]  Japanese Standards Association, "Code of the Japanese
               graphic character set for information interchange", JIS X
               0208-1990.

   [RFC1345]   Simonsen, K., "Character Mnemonics & Character Sets",
               RFC-1345, Rationel Almen Planlaegning, June 1992.

   [RFC1521]   Borenstein, N., and Freed, N., "MIME  (Multipurpose
               Internet Mail Extensions) Part One: Mechanisms for
               Specifying and Describing the Format of Internet Message
               Bodies", RFC 1521, September 1993.

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

   [RFC1556]   Nussbacher, H., "Handling of Bi-directional Texts in
               MIME" RFC 1556, Israeli Inter-University Computer Center,
               December 1993.

   [TIS]       Thai Industrial Standard for Thai Character Code for
               Computer, TIS 620-2533:1990.

Security Considerations

   Security issues are not discussed in this memo.

Author's Address

   Masataka Ohta
   Tokyo Institute of Technology
   2-12-1, O-okayama, Meguro-ku,
   Tokyo 152, JAPAN

   Phone: +81-3-5499-7084
   Fax: +81-3-3729-1940
   EMail: mohta@cc.titech.ac.jp

AI ELI5

On this page
PROBLEMISO 10646 is a universal character set that covers every language, but it is too large and complex for practical use. Different implementations need different subsets and restrictions.
MECHANISMThis memo defines two profiles: ISO-10646 (a minimal basic subset with Latin characters only) and ISO-10646-J-1 (a subset useful for Japanese that includes Latin, Greek, Cyrillic, Japanese characters and mathematical symbols).
A REFERENCE GUIDE ONLYThe memo provides recommended charset names for MIME to let email clients know which characters are supported, but the RFC notes these charsets should not be used for practical communication.

§1Why Profiling Is Needed

ISO 10646 specifies every character in every major human language in a single 16-bit encoding, but it does not specify how implementations should handle character display, combining characters, or right-to-left text. Without restrictions, different systems display the same text differently or cannot display it at all.

The memo lists several practical problems: systems may have fonts for only a subset of characters (for example, Japanese Windows/NT has fonts for Japanese characters from JIS X 0208 only); combining characters require language-specific ordering rules; and bidirectional text (used by Arabic and Hebrew) needs special handling that ISO 10646 does not define. The solution is to define profiles, or restricted versions, of ISO 10646 for specific use cases.

A universal alphabet is great in theory, but nobody has all the fonts, and different languages arrange their special symbols differently.

§2Two Profiles Defined

The memo defines two profiles. ISO-10646 is the minimal basic profile containing only Latin characters (ASCII and Latin-1 Supplement, positions 0020-00FF in ISO 10646). It is simple, widely supported, and can be used with implementation level 1 (no combining characters).

ISO-10646-J-1 is tailored for Japanese. It includes Latin, Greek, Cyrillic, mathematical operators, CJK symbols, Japanese Hiragana and Katakana, and CJK Unified Ideographs, but only those characters present in JIS X 0208, the standard for Japanese data interchange. This ensures that Japanese Windows/NT systems can display the text, but it means the charset cannot display Chinese or Korean characters outside JIS X 0208.

One profile is just the basic Latin alphabet. Another is the same plus everything a Japanese computer would have fonts for.

§3Design Constraints and Trade-offs

The memo notes several constraints that shaped the design. Combining characters are excluded from both profiles until restrictions on combining order are standardized for each language. Bidirectional text support is excluded from the basic profile because it requires complex mechanisms not yet widely implemented. CJK character restrictions are necessary because different languages need different Han character shapes: Chinese uses one shape, Japanese uses another, and Korean uses a third. Adding language information (as the J-1 in ISO-10646-J-1 indicates) is the workaround.

The authors emphasize that these profiles are for reference purposes only and that using ISO 10646 for practical communication is strongly discouraged. Other charsets like ISO-2022-JP are better for Japanese communication.

The memo lists hard problems that made simple solutions impossible, so it settles for something imperfect but workable.

§4MIME Charset Names and Encoding

Both profiles encode text in 16-bit big-endian form. The RFC defines the charset names as iso-10646 and iso-10646-j-1 for use in MIME Content-Type headers, allowing email clients to understand what characters are supported. Since 16-bit encoding is binary, MIME messages using these charsets should use Base64 Content-Transfer-Encoding.

The profiles can also be used in MIME header extensions (RFC 1522), again with Base64 encoding.

Email systems use these charset names to know which letters a message contains, and Base64 encoding to ship the 16-bit data safely.

§5References

[ISO10646]International Organization for Standardization (ISO), "Universal Multiple-Octet Coded Character Set (UCS)", International Standard, Ref. No. ISO/IEC 10646-1:1993 (E).
[JISX0208]Japanese Standards Association, "Code of the Japanese graphic character set for information interchange", JIS X 0208-1990.
[RFC1468]RFC 1468Murai, J., Crispin, M., and E. van der Poel, "Japanese Character Encoding for Internet Messages", RFC 1468, June 1993.June 1993[RFC1521]RFC 1521Borenstein, N., and Freed, N., "MIME (Multipurpose Internet Mail Extensions) Part One", RFC 1521, September 1993.September 1993[RFC1522]RFC 1522Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text", RFC 1522, September 1993.September 1993