From chuang@educ.ucalgary.ca Thu Sep 17 00:04:35 1992
Received: from etu1.educ.ucalgary.ca by sirius.ctr.columbia.edu (5.67/5.10) with SMTP id AA24079; Thu, 17 Sep 92 00:04:21 -0400
Received: by etu1.educ.ucalgary.ca (AIX 3.1/UCB 5.61/4.03)
          id AA06071; Wed, 16 Sep 92 22:01:12 -0500
From: chuang@educ.ucalgary.ca (Cen Huang)
Message-Id: <9209170301.AA06071@etu1.educ.ucalgary.ca>
Subject: no subject (file transmission)
To: yjj@ctr.columbia.edu
Date: Wed, 16 Sep 92 22:01:12 CDT
X-Mailer: ELM [version 2.3 PL11]
Status: RO

-------------------------------------------------------------------------------
  
            The Unicode Character Encoding Standard

This pamphlet, published by the Unicode Consortium, is a concise source of 
information about the Unicode standard. If you are unfamiliar with the 
Unicode standard, you'll find a definition of it in the first section of 
this pamphlet, "An Introduction to the Unicode Standard", along with a 
statement of its principles and details about the Unicode Consortium. For 
technical information about the Unicode Standard, you should proceed the 
second section, "Some Technical Details", which offers explanations of code 
elements, Han unification, character encoding, text processing, and other 
important Unicode topics. If you have concerns about Unicode 
implementation, the third section-Common Unicode Questions-answers 
questions that people most frequently ask. An appendix offers a list of 
other character encoding standards that are mapped to the Unicode standard.

This pamphlet is not a comprehensive definition or technical guide to the 
Unicode standard; you will find that in the book The Unicode Standard, 
Version 1.0, Volume 1, which was prepared by the Unicode Consortium and 
published by Addison-Wesley Publishing Co. For ordering information, look 
in the back of this pamphlet.

    An Introduction to the Unicode Standard

The Unicode standard is a new character code designed to encode text for 
storage in computer files. It is a profile (a subset) of the upcoming ISO 
10646 standard. The design of the Unicode standard is based on the 
simplicity and consistency of today's prevalent character code set, ASCII 
(and Latin-1, and extended version of the ASCII code set), but goes far 
beyond ASCII's limited ability to encode only the Latin alphabet: the 
Unicode encoding provides the capacity to encode all of the characters used 
for written languages throughout the world.

In order to accommodate the many thousands of characters used in 
international text, the Unicode standard uses a 16-bit set instead of 
ASCII's 7-bit code set. This expansion provides codes for more than 65,000 
characters, a huge increase over ASCII's code capacity of 128 characters. 
To keep character coding simple and efficient, the Unicode standard assigns 
each character a unique 16-bit value, and does not use complex modes or 
escape codes to specify modified characters or special cases. This 
simplicity and efficiency makes it easy for computers and software to 
handle Unicode-encoding text files.

Because the Unicode encoding provides a standard for international 
character sets that have lacked a consistent coding format, it brings order 
to a chaotic state of affairs that has made it almost impossible to 
exchange text files across language borders. Computer users who deal with 
multilingual text - international businessmen, linguists, and others - will 
all find that the Unicode encoding greatly simplifies their work. Users 
such mathematicians and technicians, who use mathematical symbols and other 
technical characters, will also find the Unicode standard useful for their 
text files, which can include those characters never provided for in the 
ASCII standard. (to be continued)


Status: RO

----------------------------------------------------------------------- 
             THE UNICODE CHARACTER ENCODING STANDARD 
                                                    (Continued UNICD02) 
----------------------------------------------------------------------- 
    The Unicode Standard and ISO 10646

Until recently, the Unicode standard contended to be the internationally 
accepted character encoding standard with a draft international standard 
known as ISO 10646. However, a recent agreement between the Unicode 
Consortium and the committee defining ISO 10646 has established a merger 
of the two standards: the Unicode standard will become a subset of the 
ISO 10646 character set.

The Unicode standard's 65,536 code points will become the first 65,536 
code points of ISO 10646 and will contain all of the characters 
currently defined by ISO 10646. All other ISO 10646 code points will be 
empty and reserved for future expansion. To accommodate characters 
required by ISO 10646, the next version of the Unicode standard will 
include over 3600 new Chinese, Japanese, and Korean characters and over 
1000 precomposed characters of other scripts.

The merger of the Unicode standard and ISO 10646 leaves only worldwide 
character encoding standard so that there will be no battle between 
standards, and no users left stranded because the encoding they are 
using did not prevail.

    What Characters Does the Unicode Standard Include ?

The Unicode standard defines codes for characters used in every major 
language written today. It includes the Latin alphabet used for English, 
the Cyrillic alphabet used for Russian, the Greek, Hebrew, and Arabic 
alphabets, and other alphabets used in countries across Europe, Africa, 
the Indian subcontinent, and Asia.

The Unicode standard also includes alphabets such as Japanese Kana, 
Korean hangul, and Chinese bopomofo. The largest part of the Unicode 
standard is devoted to thousands of unified character codes for Chinese, 
Japanese, and Korean ideographs.

The Unicode standard also includes many sets of symbols, with codes 
defined for punctuation marks, mathematical symbols, technical symbols, 
arrows, dingbats, and others. It provides codes for diacritics, which 
are modifying characters marks such as the tilde (~) that appear in 
conjunction with other characters (g,for example). In all, the Unicode 
standard provides codes for over 29,000 characters from the world's 
alphabets, ideograph sets, and symbol collections.

The Unicode standard retains over 29,000 unused code numbers for 
expansion to include new characters. Future plans may call for including 
historic scripts such as hieroglyphics in the Unicode standard, and for 
expanding current alphabets and symbols sets as needed. In addition, the 
Unicode standard reserves over 6,000 code numbers for private use, which 
software and hardware developers can assign internally for their own 
characters and symbols.

    The Principles of the Unicode Standard

The Unicode standard was created by a team of computer professionals, 
linguists, and scholars to become a worldwide character standard, one 
easily used for text encoding everywhere. To the end, is follows a set 
of fundamental principles:

. The Unicode standard is simple and consistent: It uses fixed-width 
  16-bit character codes, and does not depend on states or modes for 
  encoding special characters.

. The Unicode standard incorporates the character sets of many existing 
  standards: For example, it includes the Latin-1 character set as its 
  first 256 characters. It includes the repertoire of characters from 
  numerous other corporate, national, and international standards as well.

. The Unicode standard uses Han unification to consolidate Chinese, 
  Korean, and Japanese ideographs.

. The Unicode standard allows for character composition in creating 
  marked characters: It encodes each character and diacritic or vowel mark 
  separately, and allows the characters to be combined to create a marked 
  character (such as e. Note: it is a French e with / on top, but I can 
  type it using ascii). It provides single codes for marked characters 
  when necessary to comply with preexisting character standard.

    The Unicode Consortium

The Unicode Consortium is a non-profit organization founded in January 
of 1991 to promote the use of the Unicode standard. Its first 
accomplishment was to set formally the specifications for Unicode 
Version 1.0. The Unicode Consortium now provides technical information 
and news about the Unicode standard, and works to maintain the Unicode 
standard, refining the specification and expanding the character set as 
necessary.

Unicode, Inc., started out as an informal collaboration between 
engineering teams at Apple and Xerox, who produced the original design 
of the Unicode standard. Other companies concerned with multilingual and 
international text applications soon joined them: Adobe, Aldus, Borland, 
Digital, GO, IBM, Lotus, Metaphor, Microsoft, NeXT, Novell, The Research 
Libraries Group, Sun, and WordPerfect. These corporations are now part 
of the Unicode Technical Committee, the group within the Unicode 
Consortium that actively maintains the Unicode standard.

The Unicode Consortium offers two types of memberships: regular 
membership and affiliate membership. Regular members are typically 
corporations and institutions who sit on the Unicode Technical 
Committee. Affiliate members are typically individuals interested in 
technical information or news release about the Unicode standard; they 
receive mailings from Unicode Consortium and are invited to contribute 
on technical matters to the Technical Committee.


Status: RO

-----------------------------------------------------------------------
             THE UNICODE CHARACTER ENCODING STANDARD
                                                    (Continued UNICD03)
-----------------------------------------------------------------------

    Technical Details

Because computer processors actually manipulate numbers and not text, a
computer must encode text as a series of numbers. It must interpret
processed numbers as text to be displayed on a screen, printer, or other
output device. In order for a character encoding to successfully encode,
process, and interpret text, it must meet three main requirements:

. Define the smallest useful elements of text to be encoded.
. Assign a unique code to each element.
. Provide basic rules for encoding and interpreting text so that
  programs can successfully read and process text.

These requirements are the basis for the design of the Unicode standard.

    Define Elements of Text

When spoken language is written down as text, it is represented be text
elements that combine to create words and sentences. These elements may
be letters such as "w" or "m"; characters such as those in Japanese
hiragana that represent syllables (ka, shi, bu, and so forth); or
ideographs such as those used in Chinese that represent full words or
concepts.

Each writing system defines its own text elements, a definition that
often changes depending on the process handling the text. For example,
when sorting Spanish words alphabetically, "ll" counts as a single text
element. When typing Spanish words, however, "ll" is two separate text
elements:"l" and "l".

To avoid deciding what is and is not a text element in different
processes, the Unicode standard breaks up a writing system into code
elements (commonly called simply "characters" when writing about the
Unicode standard). A code element is a part of a writing system defined
by the Unicode standard to be fundamental and useful for computer text
processing. For the most part, code elements correspond to the most
commonly used text elements. For example, each upper- and lower- case
letter in the English alphabet is a single code element.

In cases that lack universal agreement over what constitutes a text
element, the Unicode standard defines a code element using the text
element definition that is most elemental for encoding text with a
computer. For example, instead of defining "ll" as single code element
for Spanish text, the Unicode standard defines each "l" as separate code
element. It leaves the task of computing two "l"s together for
alphabetic sorting  to the software that's processing the text. Some of
the Unicode code elements do not correspond to text elements at all
because they exist only in the world of computer-represented text. These
are control characters. Each control character specifies a computer text
operation such as a tab stop or a bell ring (both carried over from the
old teletype-oriented ASCII standard).

The Unicode standard defines special control characters for arranging
text. Some control the direction of text---left- to-right or
right-to-left--- for rare cases where text must change directions within
a single line of text. Two control characters set line and paragraph
endings: the line separator marks the end of a line of text, and the
paragraph separator marks the end of paragraph. These two control
characters should replace the Line Feed and Carriage Return characters,
which are often used ambiguously in ASCII to end lines and paragraphs.

    Han Unification

One major challenge in creating code elements is accommodating the many
thousands of ideographs used in Chinese, Japanese, and Korean
text(called CJK text for short). The term "ideograph" literally means
"concept writing". In practice, an ideograph is a character that often
represents a single concept: one character for knife, another for sun,
and so on for thousands and thousands of words. The blanket term for
these ideographs is "Han", referring to Han dynasty, which first
codified them. In China, they are called Hanzi; in Korean,Hanja; and in
Japan, Kanji.

Current national standards for ideographs in Japan, China, Korean, and
Taiwan define a total of more than 31,000 ideographs used for written
text in these countries. Because these ideographs originated in China
and spread over a thousand years to Japan and Korean, a large majority
of the ideographs are identical from one language to the next. For
example, the single ideograph below represents separate words in
Chinese, Japanese, and Korean, all with the same meaning (although not
all identical ideographs have the same meaning).

---------------------------------
            |       /
      -----+|\    /
          / |  \/
        /   |    \
     -/   \ |      \-
            \

The Han character for water:
shui in Chinese, sui or mizu in
Japanese, swu in Korean.
--------------------------------


Status: RO

-----------------------------------------------------------------------
             THE UNICODE CHARACTER ENCODING STANDARD
                                                    (Continued UNICD04)
-----------------------------------------------------------------------
The CJK Joint Research Group has identified and categorized over 11,000
duplicate ideographs in a process call Han unification. By minimizing
the duplication of identical ideographs in separate languages, the Han
unified character set represents all of the standard Han symbols with
fewer than 21,000 unique characters.

The Unicode standard uses the Han unified character set as the central
code elements for Chinese, Japanese, and Korean. The unified character
set allows the full Han idiographic set to fit into the Unicode
standard's available code points, and allows successful encoding of CJK
text. Because the Unicode standard encodes only unique ideographs and
not their associate meaning, it does not matter whether an encoded
ideograph came from Chinese, Japanese, or Korean text, just as it does
not matter whether an "a" is used in German, Italian, or Dutch: the text
processing program is responsible for rendering text in the correct
language.

    Assigning Character Codes

The Unicode standard specifies character codes by assigning a single
16-bit number to each code element defined by the Unicode standard. Each
of these 16-bit numbers is called a code point and, when referred to in
text, is listed in hexadecimal form following the prefix "U+". For
example, the code point U+0041 is the hexadecimal number 0041 (equal to
the decimal number 65). It represents the character "A" in the Unicode
standard.

The Unicode standard groups code elements logically throughout its range
of code points (called the code space) as shown in the figure below. The
coding starts at U+0000 with the standard ASCII characters, and
continues with Greek, Cyrillic, Hebrew, Arabic, Indic and other scripts,
followed by symbols and punctuation. The code space continues with
hiragana, katakana, bopomofo, and hangul, and then devotes a large area
to the Han-unified CJK ideographs. Towards the end of the code space is
a range of code points reserved for private use. The last two points
(U+FFFE and U+FFFF) are reserved for compatibility checking.

Code Blocks. The Unicode standard groups characters together in scripts.
A script is any system of related characters. For example, the Latin
alphabet is one script, Arabic characters are another script, and CJK
ideographs are another script. When the characters of a script are
traditionally arranged in a certain order - alphabetic order, for
example - the Unicode standard arranges them in its code space using the
same order whenever possible. The code space allocated for each script
(including code points left empty for future script expansion) is called
code block.

General Scripts
|       Symbols
|       |   CJK Auxiliary                          Compatibility
|       |   |   CJK Ideographs                 Private Use     |
|       |   |   |                                         |    |
V       V   V   V                                         V    V
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|***|*  |** |***|***|***|***|***|***|   |   |   |   |   | ##|##*|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00  10  20  30  40  50  60  70  80  90  A0  B0  C0  D0  E0  F0  FE

+---+             +---+           +---+
|***| Allocated   |   | Reserved  |###| Private Use
+---+             +---+           +---+

Figure   The Unicode layout arranges characters in similar groups.

Version 1.0 of the Unicode standard positions code blocks so they start
at convenient locations for  numbering, usually at beginning of
intervals of 256 code points(hexadecimal 100). For example, the Cyrillic
code block starts at U+0400 and Arabic text block starts at U+0600. And
code blocks vary greatly in size. For example, the Cyrillic block does
not exceed 256 code points, while the CJK code block has a range of
thousands of code points.

(to be continued)


Status: RO

-----------------------------------------------------------------------
             THE UNICODE CHARACTER ENCODING STANDARD
                                                    (Continued UNICD06)
-----------------------------------------------------------------------

    Common Questions About the Unicode Standard

Most people have questions they want answered before switching to a new
character encoding standard. What follows are the most commonly asked
questions about the Unicode standard.

. Can the Unicode encoding standard successfully encode the full
  Chinese-Japanese-Korean ideograph set ?

Yes. The Unicode standard defines characters that match all the
ideographs identified by Han unification, a body of less than 21,000
unique characters which are duplicated among the three languages. It
goes on to define characters unique to each language, so that text in
Chinese, Japanese, or Korean can be represented by Han unified
ideographs  along with language-specific ideographs wherever necessary.
It also defines CJK scripts such as hiragana, bopomofo, and hangul,
whose characters are often used in combination with ideographs in CJK
text.

The CJK characters defined by Unicode standard are those defined by the
Chinese-Japanese-Korean Joint Research Group, an authoritative standards
body established in China, Japan, and Korea.

. Will adhering to the Unicode standard double file sizes ?

In some cases, but not most cases. A text-only ASCII file converted to a
Unicode text-only file doubles in size because each one-byte code point
becomes a two-byte code point. This type of file is called a plain text
file because it contains character codes only without added information
about the appearance of the text it encodes.

Most word processors, spreadsheets, and similar applications store text
files that are "fancy text files": that is, files that contain extra
data about the appearance and position of the text characters. This
extra data, customized for the application that created the file,
usually takes far more file space than the plain text data in the file.
When a fancy text ASCII file such as a full-featured word processor file
is converted to the Unicode standard, it typically grows by only 20 to
25 percent because only the plain text data is doubled in size.

. How difficult it to write programs that handle 16-bit character data ?

ANSI C, today's dominant programming language, provides the data type
wchar_t, which is a wide character data type capable of handling 16-bit
Unicode characters. Extensions to the ANSI C runtime library are
proposed to provide functions which perform all the standard string
handling capabilities now available for 8-bit character strings.

Custom string handling is easily converted from ANSI because the Unicode
standard specifies that each character in a string always takes two
bytes. Programs can use pointers to access characters randomly within a
Unicode text string, with assurance that as long as the point moves in
two-byte increments it will always point to the beginning of a
character. Other encoding standards to not guarantee that character size
is always two bytes, which makes random access within a string
impossible.

. How hard will it be to convert text using existing standard to the
  Unicode standard ?

For the most part, it will be a simple matter. ASCII and Latin-1 text,
in particular, is very easy to convert to the Unicode standard because
the first code block of the Unicode standard contains ASCII and Latin-1
characters using the same code points (in 16-bit form) that they use in
ASCII and Latin-1. Most other major standards will also map to the
Unicode standard because it contains all of the characters defined by
those standards(Note: I scaned the book "The Unicode Volume II", GB is
listed there, see the following also. I am not sure if they are from
China GB. By the way, both simplified and tranditional Chinese are
included). To make mapping easy, the Unicode specification contains
complete mapping tables for converting text in other standards to the
Unicode standard. Appendix: Other Character Standards Which Map to the
Unicode Standard

When the Unicode standard was defined in 1991, it was designed so that
following character encoding standards would map to it:

ANSI X3.4     ISCII         ISO DIS 6861.2       JIS X 0208
ANSI X3.32    ISO 646       ISO DIS 6862.2       JIS X 0212
ANSI Y10.20   ISO 2047      ISO 6937             KS C 5601
ANSI Z39.47   ISO 2022      ISO 8859             TIS 620-2529
ANSI Z39.64   ISO 2033      ISO 8879             ISO 8859
ASMO 449      ISO 5426      ISO DP 8957          ISO 8879
CCCII         ISO 5427      ISO 9036
CNS 11643     ISO 5428      ISO/IEC DIS 10367
GB 2312       ISO 6438      ISO/IEC DIS 10646

    For Further Information

If you want more detailed information about the Unicode standard, you
can find it in The Unicode Standard, Volumes I and II, published by
Addison-Wesley Publishing.

Volum I covers the general principles of the Unicode standard,
conformance issues, code space allocation, control characters, composite
characters, directionality, implementation, future plans, case mapping
tables, and mappings to and from various company code pages. This
paperback book, 704 pages in length, is available now.

Because CJK ideographs contistute a large part of the Unicode character
set, they are provided separately in Volume II, which also discusses CJK
text encoding issues. Volume II will be available in early 1992 (Note:
this book is available at my local computer store).

Any bookstore with a comprehensive computer book section will carry
copies of the Unicode books. You may order them direcly from
Addison-Wesley by calling 1-800-447-2226, or mailing to the following
address in the United States

Addison-Wesley
Order Department
Route 128
Reading, MA 01867
USA

(others omitted)

Be sure to call to confirm the price with postage and handling before
you send in your order.

For further infomation from the Unicode Consortium, please write to:

The Unicode Consortium
1965 Charleston Rd.
Mountain View, CA 94043
USA
(415)961-4189

---------------------
Some highlights of Unicode Implementor's Workshop 8/7/92
---------------------

THE CHALLENGE OF HAN UNIFICATION

    Agreement on placement of 21,000 Kanji
    Two years from "No way!" to resolution
    A major CJK-JRG achievement !
    Volume 2 of the Unicode book
    Break out session on ISO 10464

UNICODE FUTURE

    Promote ISO 10464/Unicode understanding and usage
    Fourth Unicode Workshop, 10/92/ in Frankfurt
    Extend Unicode within ISO 10464 structure
    Unicode support in forthcoming products:
        Apple's Quichdraw GX
        Micocosoft's Windows NT
        Novell's Netware 4.0
        NeXT's NextStep
        Metaphor's DIS
        Taligent
        True Type Fonts
        (and manym many more)

CONCLUSION

    Unicode was an examplary collaborative industry effort !
        Basic concepts to approved ISO standard in 3.5 years.
    A sample uniform character set makes a huge differenct !
        A large reduction in complexity
        Makes creating truly international product possible
        Needs to be embraced by platforms and applications
    Very strong industry support
    Well Done !

(End)
-------------------------------------------------------------------
I have received a lots of thanks replies on this message. Hope you
netters share more information about its pros and cons.

D. Chu


Status: RO

-----------------------------------------------------------------------
Status: R

             THE UNICODE CHARACTER ENCODING STANDARD
                                                    (Continued UNICD05)
-----------------------------------------------------------------------
User Space. The Unicode standard provides a range of code points that
are reserved as user space - that is, those code points have no
universal meaning, and may be used by a program for its own internal
purposes or by a group of users for their own purposes. For example, a
group of choreographers may design a set of characters for dance
notation  and encode the characters using code points in user space. A
set of page-layout programs may use those same code points as control
codes to position text on the page. The main point of user space is that
the Unicode standard assigns no meaning to its code points, and reserves
them as user space, promising never to assign them meaning in the
future.

Expansion Space. Sections of code points throughout the code space are
reserved for expansion. This expansion space differs from user space
because it is reserved by the Unicode standard, and should never be used
for custom codes by users. When the definition of the Unicode standard
expands in the future to include new scripts - such as hieroglyphics -
or expanded versions of currently defined scripts, it will use expansion
space. Anyone using expansion code points for custom codes risks
incorrectly interpreting these points once the Unicode standard assigns
universal meaning to them in future expansion.

One of the first anticipated uses of expansion space is the merge of the
Unicode standard with ISO 10464. The Unicode standard must add over 3600
new CJK characters to the CJK code block, and over 1000 characters to
code block containing other scripts.

Encoding and Interpreting Text. Almost all computer text processes
encode and interpret text as they process text. Consider a word
processor user typing text at a keyboard. The computer's system software
receives a message that the user pressed a key combination for "T",
which it encodes as U+0054. The word processor stores the number in
memory, and also passes it on to the display software responsible for
putting the character on the screen. The display software, which may be
a window manger or part of the word processor itself, uses the number as
an index to find an image of a "T", which it draws on the monitor
screen. The process continues as the user types in more characters.

It is an important principle of the Unicode standard that its
specifications directly address only encoding and interpreting text -
and not any other actions performed on the text. For example, the word
processor may check the typist's input after it has been encoded to look
for misspelled words and beep if it finds any, or it may insert line
breaks when it counts a certain number of characters entered since the
last line break. The Unicode standard does not specify how to carry out
these processes as long as the character encoding and decoding is
performed properly.

Interpreting Characters and Rendering Glyphs. The difference between
interpreting a character (identifying a code point) and rendering it on
screen or paper is crucial to understanding the role of the Unicode
encoding in text processing. The character identified by a Unicode point
is an abstract entity:"LATIN CHARACTER CAPITAL A" or "BENGALI DIGIT 5"
for example. The mark made on screen or paper, called a glyph image, is
a visual representation of the character. Glyphs are not defined by the
Unicode standard.

------------------------------------------------------------
Figure (non-ascii characters, omitted)

The same Arabic characters rendered in four different hands
-------------------------------------------------------------

The Unicode standard defines only how characters are interpreted, not
how glyphs are rendered. The software or hardware rendering engine of a
computer is responsible for the appearance of the characters on the
screen. The Unicode standard does not specify the size, shape, or
orientation of characters on the screen. It specifies only the code
point assigned to that character.

Creating Composite Characters. Some characters encoded by the Unicode
standard are composite characters: that is, they are two or more
characters rendered together in a single space. For example, "a (note:
with ^ on top)" is a composite character created by rendering "a" and
"^" together. A composite character is typically made up of a base
character, which occupies a single space, and one or more non-spacing
characters, which are rendered in the same space as the base character.

The Unicode standard specifies the order of character used to create a
composite character. The base character comes first, followed by a
non-spacing character. If a composite character requires more than one
non-spacing character, the order in which the non-spacing characters are
stored is not important if they do not compete for the same space. If
they do, order is important. The Unicode standard specifies how
competing non-spacing characters are applied to a base character.

The Unicode standard offers another option some composite characters:
they may be represented as precomposed characters. Each precomposed
character is represented by a single code point instead of two or more
code points which combine later during rendering - a sort of
"prefabricated" composite character. For example, the character "u
(note: with two dots .. on top)" can be encoded as the single code point
U+00FC "u (with .. on top)" or as the base character U+0075 "u" followed
by the non-spacing character U+0308 "..". The Unicode standard offers
precomposed characters to retain compatibility with established
standards such as Latin-1, which includes many precomposed characters
such as "u (with .. on top)" and "n with ~ on top)". Directionality. Not
all scripts are written in the same direction. While scripts such as
Latin and Cyrillic are usually written from left to right, other script
such as Arabic and Hebrew are written from right to left. The Unicode
standard specifies that the stored order of characters is the order in
which the characters are normally written, no the visible order of the
rendered characters.

------------------------------------------------------------------------
 Figure (some non-ascii characters, omitted)

Character are always stored in logical order, despite the directionality
of the script in which they're written.
--------------------------------------------------------------------------

For example, think of the way a typist would enter text. A German typist
typing Latin characters reads a line of text from left to right and
enters the characters in that order. A Saudi typist reads Arabic
characters from right to left and enters the characters in that order. A
bilingual typist typing Arabic with occasional German quotations usually
enters text from right to left, but switches to left to right for the
quotations. In each case, the Unicode standard specifies that the
characters are stored in the order in which they were typed, not in an
arbitrary right-to- left or left-to-right order.

Because scripts of one directionality are often quoted within scripts of
the opposite directionality, the Unicode standard provides rules for
determining the overall direction of the script so that rendering
software will render text in the proper direction. The Unicode standard
also provides special invisible characters that can be inserted within
text to change the directionality of a given segment.

The Unicode standard specifies directionality only for horizontal text,
which may change directions at any point. Text in scripts such as
Japanese or Chinese always flows from top to bottom when written
vertically.

Unicode Conformance Requirements. The Unicode standard specifies
requirements for conformance. The set of rules that determine whether a
process complies with the Unicode standard resolves around one main
principle: Any process which changes a character must to it
deliberately. In other words, the process must be able to determine the
correct identity of each code element it changes and of each new code
element it creates. How or why the process changes the characters is not
within the scope of the Unicode standard.

(to be continued)



----------------------------
Note: I have finished typing this pamphlet. However, I am not sure
if I sent the last one UNCD06 to you or not(because I was too busy
last weekend, but I am sure this message is new). Please reply me
a message. Sorry for inconvenience.

D. Chu.
----------------------------

