mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-22 06:37:42 -04:00
2031 lines
50 KiB
Text
2031 lines
50 KiB
Text
Internet Draft Paul Hoffman
|
|
draft-ietf-idn-nameprep-03.txt IMC & VPNC
|
|
February 24, 2001 Marc Blanchet
|
|
Expires in six months ViaGenie
|
|
|
|
Preparation of Internationalized Host Names
|
|
|
|
Status of this memo
|
|
|
|
This document is an Internet-Draft and is in full conformance with all
|
|
provisions of Section 10 of RFC2026.
|
|
|
|
Internet-Drafts are working documents of the Internet Engineering Task
|
|
Force (IETF), its areas, and its working groups. Note that other groups
|
|
may also distribute working documents as Internet-Drafts.
|
|
|
|
Internet-Drafts are draft documents valid for a maximum of six months
|
|
and may be updated, replaced, or obsoleted by other documents at any
|
|
time. It is inappropriate to use Internet-Drafts as reference material
|
|
or to cite them other than as "work in progress."
|
|
|
|
To view the list Internet-Draft Shadow Directories, see
|
|
http://www.ietf.org/shadow.html.
|
|
|
|
|
|
Abstract
|
|
|
|
This document describes how to prepare internationalized host names for
|
|
use in the DNS. The steps include:
|
|
- mapping characters to other characters, such as to change their case
|
|
- normalizing the characters
|
|
- excluding characters that are prohibited from appearing in
|
|
internationalized host names
|
|
This document does not specify a wire protocol. This preparation should
|
|
be done before the DNS request.
|
|
|
|
1. Introduction
|
|
|
|
When expanding today's DNS to include internationalized host names,
|
|
those new names will be handled in many parts of the DNS. The
|
|
Internationalized Domain Name (IDN) Working Group's requirements
|
|
document [IDNReq] describes a framework for domain name handling as well
|
|
as requirements for the new names.
|
|
|
|
A user can enter a domain name into an application program in a myriad
|
|
of fashions. Depending on the input method, the characters entered in
|
|
the domain name may or may not be those that are allowed in
|
|
internationalized host names. Thus, there must be a way to normalized
|
|
the user's input before the name is resolved in the DNS.
|
|
|
|
It is a design goal of this document to allow users to enter host names
|
|
in applications and have the highest chance of getting the name correct.
|
|
Another, often conflicting, design goal is to allow as wide of a range
|
|
of characters as possible to be allowed in host names. The user should
|
|
not be limited to only entering exactly the characters that might have
|
|
been used, but to instead be able to enter characters that unambiguously
|
|
normalize to characters in the desired host name. Although it would be
|
|
easy to use the process in this step to "correct" perceived mis-features
|
|
or bugs in the current character standards, this document expressly does
|
|
not do so.
|
|
|
|
This document describes the steps needed to convert a name part from one
|
|
that is entered by the user to one that can be used in the DNS.
|
|
|
|
Within a fully-qualified domain name, some labels may be
|
|
internationalized, while others are not. This specification should be
|
|
applied to all internationalized labels. An application must be able to
|
|
recognize which part is internationalized; the method for such
|
|
recognition is outside of the scope of this document. Note that this
|
|
specification is harmless to the non-internationalized labels: when the
|
|
steps described here are applied to non-internationalized labels, the
|
|
label will not change.
|
|
|
|
1.1 Terminology
|
|
|
|
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
|
|
"MAY" in this document are to be interpreted as described in RFC 2119
|
|
[RFC2119].
|
|
|
|
Examples in this document use the notation for code points and names
|
|
from the Unicode Standard [Unicode3] and ISO/IEC 10646 [ISO10646]. For
|
|
example, the letter "a" may be represented as either "U+0061" or "LATIN
|
|
SMALL LETTER A". In the lists of prohibited characters, the "U+" is left
|
|
off to make the lists easier to read. The names of character ranges are
|
|
shown in square brackets (such as "[SYMBOLS]") and do not come from the
|
|
standards.
|
|
|
|
Note: A glossary of terms used in Unicode and ISO/IEC 10646 can be found
|
|
in [Glossary]. Information on the 10646/Unicode character model can be
|
|
found in [CharModel].
|
|
|
|
|
|
2. Preparation Overview
|
|
|
|
The steps for preparing names are:
|
|
|
|
1) Input from the application service interface -- This can be done in
|
|
many ways and is not specified in this document
|
|
|
|
2) Map -- For each character in the input, check if it has a mapping
|
|
and, if so, replace it with its mapping. The mappings are a combination
|
|
of folding uppercase characters to lowercase and hyphen mapping. This is
|
|
described in Section 4.
|
|
|
|
3) Normalize -- Normalize the characters. This is described in Section
|
|
5.
|
|
|
|
4) Look for prohibited output -- Check for any characters that are not
|
|
allowed in the output. If any are found, return an error to the
|
|
application service interface. This is described in Section 6.
|
|
|
|
5) Resolution of the prepared name -- This must be specified in a
|
|
different IDN document.
|
|
|
|
The above steps MUST be performed in the order given in order to comply
|
|
with this specification.
|
|
|
|
The steps in this document have associated tables in the document. The
|
|
tables are derived from outside sources, and the derivation is briefly
|
|
described in the document. Although a great deal of effort has gone into
|
|
preparing the tables, there is a chance that the tables do not correctly
|
|
reflect the outside sources. Regardless of whether or not the tables
|
|
differ from the sources, implementations MUST use the tables in this
|
|
document for their processing. That is, if there is an error in the
|
|
tables, the tables must still be used. Future versions of this document
|
|
may include corrections and additions to the tables.
|
|
|
|
|
|
3. Mapping
|
|
|
|
Each character in the input stream is checked against the mapping table.
|
|
The mapping table can be found in Appendix E of this document. That
|
|
table includes all the steps described in the subsections below.
|
|
|
|
The mappings can be one-to-none, one-to-one, or one-to-many. That is,
|
|
some characters may be eliminated or replaced by more than one
|
|
character, and the output of this step might be shorter or longer than
|
|
the input. Because of this, an application MUST be prepared to receive a
|
|
longer or shorter string than the one input in the nameprep algorithm.
|
|
|
|
Rationale: Characters that are not wanted in internationalized name
|
|
parts can either be mapped to nothing in the mapping step, or cause an
|
|
error in the prohibition step. The general guideline used to pick
|
|
between the two outcomes was that removing alphabetic, non-protocol
|
|
characters be done in the mapping step, but all other removals be done
|
|
in the prohibition step. This allows for simple linguistic errors on the
|
|
part of an input mechanism to be caught in the mapping step, but to not
|
|
hide serious errors such as entering protocol characters or invisible
|
|
characters from the user.
|
|
|
|
3.1 Case mapping
|
|
|
|
The input string is case folded according to [UTR21]. For most
|
|
characters, this is the same thing as changing the input character to a
|
|
lowercase character. For some characters, however, more complex
|
|
transformations occur. The mapping table in Appendix E is derived by
|
|
applying the rules for equivalence classes from [UTR21].
|
|
|
|
Rationale: This step could have been "change all lowercase characters
|
|
into uppercase characters". However, the upper-to-lower folding was
|
|
chosen because most users of the Internet today enter host names in
|
|
lowercase.
|
|
|
|
3.2 Additional folding mappings
|
|
|
|
There are some characters that do not have mappings in [UTR21] but still
|
|
need processing. These characters include a few Greek characters and
|
|
many symbols that contain Latin characters. The list of characters to
|
|
add to the mapping table were determined by the following algorithm:
|
|
|
|
b = NormalizeWithKC(Fold(a));
|
|
c = NormalizeWithKC(Fold(b));
|
|
if c is not the same as b, add a mapping for "a to c".
|
|
|
|
Because NormalizeWithKC(Fold(c)) always equals c, the table is stable
|
|
from that point on.
|
|
|
|
3.3 Mapped out
|
|
|
|
The following characters are simply deleted from the input (that is,
|
|
they are mapped to nothing) because their presence or absence should not
|
|
make two domain names different.
|
|
|
|
Some characters are only useful in line-based text, and are otherwise
|
|
invisible and ignored.
|
|
|
|
00AD; SOFT HYPHEN
|
|
1806; MONGOLIAN TODO SOFT HYPHEN
|
|
200B; ZERO WIDTH SPACE
|
|
FEFF; ZERO WIDTH NO-BREAK SPACE
|
|
|
|
Variation selectors and cursive connectors select different glyphs, but
|
|
do not bear semantics.
|
|
|
|
180B; MONGOLIAN FREE VARIATION SELECTOR ONE
|
|
180C; MONGOLIAN FREE VARIATION SELECTOR TWO
|
|
180D; MONGOLIAN FREE VARIATION SELECTOR THREE
|
|
200C; ZERO WIDTH NON-JOINER
|
|
200D; ZERO WIDTH JOINER
|
|
|
|
|
|
4. Normalization
|
|
|
|
The output of the mapping step is normalized using form KC, as described
|
|
in [UTR15]. Using form KC instead of form C causes many characters that
|
|
are identical or near-identical to be converted into a single character.
|
|
Note that this specification refers to a specific version of [UTR15]. If
|
|
a later version of [UTR15] changes the algorithm used for normalizing,
|
|
that later version MUST NOT be used with this specification. Note that
|
|
it is likely that this specification will be revised if UTR15 is
|
|
changed, but until that happens, only the specified version of [UTR15]
|
|
must be used.
|
|
|
|
|
|
5. Prohibited Output
|
|
|
|
Before the text can be emitted, it must be checked for prohibited code
|
|
points. There is a variety of prohibited code points, as described in
|
|
this section.
|
|
|
|
One of the goals of IDN is to allow the widest possible set of host
|
|
names as long as those host names do not cause other problems, such as
|
|
conflict with other standards. Specifically, experience with current DNS
|
|
names have shown that there is a desire for host names that include
|
|
personal names, company names, and spoken phrases. A goal of this
|
|
section is to prohibit as few characters that might be used in these
|
|
contexts as possible.
|
|
|
|
The collected list of prohibited code points can be found in Appendix F
|
|
of this document. The list in Appendix F MUST be used by implementations
|
|
of this specification. If there are any discrepancies between the list
|
|
in Appendix F and subsections below, the list Appendix F always takes
|
|
precedence.
|
|
|
|
Some code points listed in one section would also appear in other
|
|
sections. Each code point is only listed once in the table in Appendix
|
|
F.
|
|
|
|
5.1 Currently-prohibited ASCII characters
|
|
|
|
Some of the ASCII characters that are currently prohibited in host names
|
|
by [STD13] are also used in protocol elements such as URIs [URI]. The other
|
|
characters in the range U+0000 to U+007F that are not currently allowed
|
|
are also prohibited in host name parts to reserve them for future use in
|
|
protocol elements.
|
|
|
|
0000-002C; [ASCII]
|
|
002E-002F; [ASCII]
|
|
003A-0040; [ASCII]
|
|
005B-0060; [ASCII]
|
|
007B-007F; [ASCII]
|
|
|
|
5.2 Space characters
|
|
|
|
Space characters would make visual transcription of URLs nearly
|
|
impossible and could lead to user entry errors in many ways.
|
|
|
|
0020; SPACE
|
|
00A0; NO-BREAK SPACE
|
|
2000; EN QUAD
|
|
2001; EM QUAD
|
|
2002; EN SPACE
|
|
2003; EM SPACE
|
|
2004; THREE-PER-EM SPACE
|
|
2005; FOUR-PER-EM SPACE
|
|
2006; SIX-PER-EM SPACE
|
|
2007; FIGURE SPACE
|
|
2008; PUNCTUATION SPACE
|
|
2009; THIN SPACE
|
|
200A; HAIR SPACE
|
|
202F; NARROW NO-BREAK SPACE
|
|
3000; IDEOGRAPHIC SPACE
|
|
1680; OGHAM SPACE MARK
|
|
200B; ZERO WIDTH SPACE
|
|
|
|
5.3 Control characters
|
|
|
|
Control characters cannot be seen and can cause unpredictable results
|
|
when displayed.
|
|
|
|
0000-001F; [CONTROL CHARACTERS]
|
|
007F; DELETE
|
|
0080-009F; [CONTROL CHARACTERS]
|
|
2028; LINE SEPARATOR
|
|
2029; PARAGRAPH SEPARATOR
|
|
|
|
5.4 Private use and replacement characters
|
|
|
|
Because private-use characters do not have defined meanings, they are
|
|
prohibited. The private-use characters are:
|
|
|
|
E000-F8FF; [PRIVATE USE, PLANE 0]
|
|
F0000-FFFFD; [PRIVATE USE, PLANE 15]
|
|
100000-10FFFD; [PRIVATE USE, PLANE 16]
|
|
|
|
The replacement character (U+FFFD) has no known semantic definition in a
|
|
name, and is often displayed by renderers to indicate "there would be some
|
|
character here, but it cannot be rendered". For example, on a computer
|
|
with no Asian fonts, a name with three katakana characters might be
|
|
rendered with three replacement characters.
|
|
|
|
FFFD; REPLACEMENT CHARACTER
|
|
|
|
5.5 Non-character code points
|
|
|
|
Non-character code points are code points that have been assigned in
|
|
ISO/IEC 10646 but are not characters. Because they are already assigned,
|
|
they are guaranteed not to later change into characters.
|
|
|
|
FFFE-FFFF; [NONCHARACTER CODE POINTS]
|
|
1FFFE-1FFFF; [NONCHARACTER CODE POINTS]
|
|
2FFFE-2FFFF; [NONCHARACTER CODE POINTS]
|
|
3FFFE-3FFFF; [NONCHARACTER CODE POINTS]
|
|
4FFFE-4FFFF; [NONCHARACTER CODE POINTS]
|
|
5FFFE-5FFFF; [NONCHARACTER CODE POINTS]
|
|
6FFFE-6FFFF; [NONCHARACTER CODE POINTS]
|
|
7FFFE-7FFFF; [NONCHARACTER CODE POINTS]
|
|
8FFFE-8FFFF; [NONCHARACTER CODE POINTS]
|
|
9FFFE-9FFFF; [NONCHARACTER CODE POINTS]
|
|
AFFFE-AFFFF; [NONCHARACTER CODE POINTS]
|
|
BFFFE-BFFFF; [NONCHARACTER CODE POINTS]
|
|
CFFFE-CFFFF; [NONCHARACTER CODE POINTS]
|
|
DFFFE-DFFFF; [NONCHARACTER CODE POINTS]
|
|
EFFFE-EFFFF; [NONCHARACTER CODE POINTS]
|
|
FFFFE-FFFFF; [NONCHARACTER CODE POINTS]
|
|
10FFFE-10FFFF; [NONCHARACTER CODE POINTS]
|
|
|
|
5.6 Surrogate codes
|
|
|
|
The following code points are permanently reserved for use as surrogate
|
|
code values in the UTF-16 encoding, will never be assigned to
|
|
characters, and are therefore prohibited:
|
|
|
|
D800-DFFF; [SURROGATE CODES]
|
|
|
|
5.7 Inappropriate for plain text
|
|
|
|
The following characters should not appear in regular text.
|
|
|
|
FFF9; INTERLINEAR ANNOTATION ANCHOR
|
|
FFFA; INTERLINEAR ANNOTATION SEPARATOR
|
|
FFFB; INTERLINEAR ANNOTATION TERMINATOR
|
|
FFFC; OBJECT REPLACEMENT CHARACTER
|
|
|
|
5.8 Inappropriate for domain names
|
|
|
|
The ideographic description characters allow different sequences of
|
|
characters to be rendered the same way, which makes them inappropriate
|
|
for host names that must have a single canonical order.
|
|
|
|
2FF0-2FFF; [IDEOGRAPHIC DESCRIPTION CHARACTERS]
|
|
|
|
5.9 Change display properties
|
|
|
|
The following characters, some of which are deprecated in ISO/IEC 10646,
|
|
can cause changes in display or the order in which characters appear
|
|
when rendered.
|
|
|
|
200E; LEFT-TO-RIGHT MARK
|
|
200F; RIGHT-TO-LEFT MARK
|
|
202A; LEFT-TO-RIGHT EMBEDDING
|
|
202B; RIGHT-TO-LEFT EMBEDDING
|
|
202C; POP DIRECTIONAL FORMATTING
|
|
202D; LEFT-TO-RIGHT OVERRIDE
|
|
202E; RIGHT-TO-LEFT OVERRIDE
|
|
206A; INHIBIT SYMMETRIC SWAPPING
|
|
206B; ACTIVATE SYMMETRIC SWAPPING
|
|
206C; INHIBIT ARABIC FORM SHAPING
|
|
206D; ACTIVATE ARABIC FORM SHAPING
|
|
206E; NATIONAL DIGIT SHAPES
|
|
206F; NOMINAL DIGIT SHAPES
|
|
|
|
5.10 Inappropriate characters from common input mechanisms
|
|
|
|
U+3002 is used as if it were U+002E in many input mechanisms,
|
|
particularly in Asia. This prohibition allows input mechanisms to safely
|
|
map U+3002 to U+002E before doing nameprep without worrying about
|
|
preventing users from accessing legitimate host name parts.
|
|
|
|
3002; IDEOGRAPHIC FULL STOP
|
|
|
|
|
|
|
|
6. Unassigned Code Points
|
|
|
|
All code points not assigned in ISO/IEC 10646 are called "unassigned
|
|
code points". Authoritative name servers MUST NOT have internationalized
|
|
name parts that contain any unassigned code points. DNS requests MAY
|
|
contain name parts that contain unassigned code points. Note that this
|
|
is the only part of this document where the requirements for queries
|
|
differs from the requirements for names in DNS zones.
|
|
|
|
Using two different policies for where unassigned code points can appear
|
|
in the DNS prevents the need for versioning the IDN protocol [IDNrev].
|
|
This is very useful since it makes the overall processing simpler and do
|
|
not impose a "protocol" to handle versioning. It is expected that ISO/IEC
|
|
10646 will be updated fairly frequently; recently, it has happened
|
|
approximately once a year. Each time a new version of ISO/IEC 10646 appears,
|
|
a new version of this document can be created. Some end users will want
|
|
to use the new code points as soon as they are defined.
|
|
|
|
The list of unassigned code points can be found in Appendix G of this
|
|
document. The list in Appendix G MUST be used by implementations of this
|
|
specification. If there are any discrepancies between the list in
|
|
Appendix G and the ISO/IEC 10646 specification, the list Appendix G
|
|
always takes precedence.
|
|
|
|
Due to the way that versioning is handled in this section, host names
|
|
that are embedded in structures that cannot be changed (such as the
|
|
signed parts of digital certificates) MUST NOT have internationalized
|
|
name parts that contain any unassigned code points.
|
|
|
|
6.1 Categories of code points
|
|
|
|
Each code point in ISO/IEC 10646 can be categorized by how it acts in the
|
|
process described in earlier sections of this document:
|
|
|
|
AO Code points that may be in the output
|
|
|
|
MN Code points that cannot be in the output because they are
|
|
mapped to nothing or never appear as output from
|
|
normalization
|
|
|
|
D Code points that cannot be in the output because they are
|
|
disallowed in the prohibition step
|
|
|
|
U Unassigned code points
|
|
|
|
A subsequent version of this document that references a newer version of
|
|
ISO/IEC 10646 with new code points will inherently have some code points
|
|
move from category U to either D, MN, or AO. For backwards
|
|
compatibility, no future version of this document will move code points
|
|
from any other category. That is, no current AO, MN, or D code points
|
|
will ever change to a different category.
|
|
|
|
Authoritative name servers MUST NOT contain any name that has code
|
|
points outside of AO for the latest version of this document. That is,
|
|
they are forbidden to contain any IDN names containing code points from
|
|
the MN, D, or U categories.
|
|
|
|
Applications creating name queries MUST treat U code points as if they
|
|
were AO when preparing the name parts according to this document. Those
|
|
applications MAY optionally have a preprocess that provide stricter
|
|
checks: treating unassigned code points in the input as errors, or
|
|
warning the user about the fact that the code point is unassigned in the
|
|
version of this document that the software is based on; such a choice is
|
|
a local matter for the software.
|
|
|
|
Non-authoritative DNS servers MAY reject names that contain code points
|
|
that are in categories MN or D for the version of this document that
|
|
they implement, but MUST NOT reject names because they contain name
|
|
parts with code points from category U.
|
|
|
|
6.2 Reasons for difference between authoritative servers and requests
|
|
|
|
Different software using different versions of this document need to
|
|
interoperate with maximal compatibility. The scheme described in this
|
|
section (authoritative name servers MUST NOT use unassigned code points,
|
|
requests MAY include unassigned code points) allows that compatibility
|
|
without introducing any known security or interoperability issues.
|
|
|
|
The list below shows what happens if a request contains a code point
|
|
from category U that is allowed in a newer version of this document. The
|
|
request either resolves to the domain name that was intended, or
|
|
resolves to no domain at all. In this list, the request comes from an
|
|
application using version "oldVersion" of this document, the
|
|
authoritative name server is using version "newVersion" of this
|
|
document, and the code point X was in category U on oldVersion, and has
|
|
changed category to AO, MN, or D. There are 3 possible scenarios:
|
|
|
|
1. X becomes AO -- In newVersion, X is in category AO. Because the
|
|
application passed X through, it gets back correct data from the
|
|
authoritative name server. There is one exceptional case, where X is a
|
|
combining mark.
|
|
|
|
The order of combining marks is normalized, so if another combining mark
|
|
Y has a lower combining class than X then XY will be put in the
|
|
canonical order YX. (Unassigned code points are never reordered, so this
|
|
doesn't happen in oldVersion). If the request contains YX, the request
|
|
will get correct data from the authoritative name server. However, no
|
|
domain name can be registered with XY, so a request with XY will get a
|
|
"no such host" error.
|
|
|
|
2. X becomes MN -- In newVersion, X is normalized to code point "nX" and
|
|
therefore X is now put in category MN. This cannot exist in any domain
|
|
name, so any request containing X will get back a "no such host" error.
|
|
Note, however, if the request had contained the letter nX, it would have
|
|
gotten back correct data.
|
|
|
|
3. X becomes D -- In newVersion, X is in category MN. This cannot exist
|
|
in any domain name, so any request containing X will get back a "no such
|
|
host" error.
|
|
|
|
In none of the cases does the request get data for a host name other
|
|
than the one it actually wanted.
|
|
|
|
The processing in this document is always stable. If a string S is the
|
|
result of processing on newVersion, then it will remain the same when
|
|
processed on oldVersion.
|
|
|
|
There is always a way for the application to get the correct data from
|
|
the authoritative name server. For example, suppose that <ALPHA> was
|
|
unassigned in oldVersion, and that it is assigned in newVersion, but
|
|
case-folded to <alpha>. As long as the application supplies strings
|
|
containing <alpha> instead of <ALPHA>, the correct data will be
|
|
returned. Because the processing is stable, a different application
|
|
running newVersion can pass a processed host name to the application
|
|
running oldVersion. It will only contain <alpha>, and will return the
|
|
correct results from the authoritative name server.
|
|
|
|
6.3 Versions of applications and authoritative name servers
|
|
|
|
Another way to see that this versioning system works is to compare what
|
|
happens when an application uses a newer or older version of this
|
|
document.
|
|
|
|
Newer application -- Suppose that a application or intermediary DNS
|
|
server is using version newVersion and the authoritative name server is
|
|
using version oldVersion. This case is simple: there will be no names on
|
|
the server that cannot be accessed by the application because the
|
|
resolver uses a superset of the code points accepted by the server.
|
|
|
|
Newer server -- Suppose that an application or intermediary DNS server
|
|
is using oldVersion and the authoritative name server is using
|
|
newVersion. Because the application passed through any unassigned code
|
|
points, the user can access names on the server that use code points in
|
|
newVersion. No names on the site can have code points that are
|
|
unassigned in newVersion, since that is illegal. In this case, the
|
|
application has to enter the unassigned code points in the correct
|
|
order, and has to use unassigned code points that would make it through
|
|
both the mapping and the normalization steps.
|
|
|
|
|
|
7. Security Considerations
|
|
|
|
Much of the security of the Internet relies on the DNS. Thus, any change
|
|
to the characteristics of the DNS can change the security of much of the
|
|
Internet.
|
|
|
|
Host names are used by users to connect to Internet servers. The
|
|
security of the Internet would be compromised if a user entering a
|
|
single internationalized name could be connected to different servers
|
|
based on different interpretations of the internationalized host name.
|
|
|
|
Current applications may assume that the characters allowed in host
|
|
names will always be the same as they are in [STD13]. This document
|
|
vastly increases the number of characters available in host names. Every
|
|
program that uses "special" characters in conjunction with host names
|
|
may be vulnerable to attack based on the new characters allowed by this
|
|
specification.
|
|
|
|
|
|
8. References
|
|
|
|
[CharModel] Unicode Technical Report;17, Character Model.
|
|
<http://www.unicode.org/unicode/reports/tr17/>.
|
|
|
|
[Glossary] Unicode Glossary, <http://www.unicode.org/glossary/>.
|
|
|
|
[IDNReq] Zita Wenzel and James Seng, "Requirements of Internationalized
|
|
Domain Names", draft-ietf-idn-requirements
|
|
|
|
[IDNRev] Marc Blanchet, "Handling versions of internationalized domain
|
|
names protocols", draft-ietf-idn-version
|
|
|
|
[ISO10646] ISO/IEC 10646-1:2000. International Standard -- Information
|
|
technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part
|
|
1: Architecture and Basic Multilingual Plane.
|
|
|
|
[Normalize] Character Normalization in IETF Protocols,
|
|
draft-duerst-i18n-norm-03
|
|
|
|
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
|
|
Requirement Levels", March 1997, RFC 2119.
|
|
|
|
[RFC2396] Tim Berners-Lee, et. al., "Uniform Resource Identifiers (URI):
|
|
Generic Syntax", August 1998, RFC 2396.
|
|
|
|
[RFC2732] Robert Hinden, et. al., Format for Literal IPv6 Addresses in
|
|
URL's, December 1999, RFC 2732.
|
|
|
|
[STD13] Paul Mockapetris, "Domain names - concepts and facilities" (RFC
|
|
1034) and "Domain names - implementation and specification" (RFC 1035,
|
|
STD 13, November 1987.
|
|
|
|
[Unicode3] The Unicode Consortium, "The Unicode Standard -- Version
|
|
3.0", ISBN 0-201-61633-5. Described at
|
|
<http://www.unicode.org/unicode/standard/versions/Unicode3.0.html>.
|
|
|
|
[URIs] For example: Roy Fielding et. al., "Uniform Resource Identifiers:
|
|
Generic Syntax", August 1998, RFC 2396; Robert Hinden et. al, "IPv6
|
|
Literal Addresses in URL's", December 1999, RFC 2732.
|
|
|
|
[UTR15] Mark Davis and Martin Duerst. Unicode Normalization Forms.
|
|
Unicode Technical Report;15.
|
|
<http://www.unicode.org/unicode/reports/tr15/>.
|
|
|
|
[UTR21] Mark Davis. Case Mappings. Unicode Technical Report;21.
|
|
<http://www.unicode.org/unicode/reports/tr21/>.
|
|
|
|
|
|
A. Acknowledgements
|
|
|
|
Many people from the IETF IDN Working Group and the Unicode Technical
|
|
Committee contributed ideas that went into the first draft of this
|
|
document. Mark Davis and Patrik Faltstrom were particularly helpful in
|
|
some of the ideas, such as the versioning description.
|
|
|
|
The IDN namprep design team made many useful changes to the first
|
|
draft. That team and its advisors include:
|
|
|
|
Asmus Freytag
|
|
Cathy Wissink
|
|
Francois Yergeau
|
|
James Seng
|
|
Marc Blanchet
|
|
Mark Davis
|
|
Martin Duerst
|
|
Patrik Faltstrom
|
|
Paul Hoffman
|
|
|
|
Additional significant improvements were proposed by:
|
|
|
|
Jonathan Rosenne
|
|
Kent Karlsson
|
|
Scott Hollenbeck
|
|
|
|
|
|
B. Differences Between -02 and -03 Drafts
|
|
|
|
Throughout: Changed "ISO 10646" to "ISO/IEC 10646". Changed "codepoint"
|
|
to "code point".
|
|
|
|
Abstract: Added last sentence.
|
|
|
|
1: Removed the sentence about [IDNComp] in the first paragraph.
|
|
Clarified the design goals in the third paragraph. Added new last
|
|
paragraph about processing name parts.
|
|
|
|
3: Added sentence at the end of the second paragraph about accepting
|
|
shorter or longer responses. Changed "Design note" to "Rationale".
|
|
|
|
3.1: Revised the first paragraph to make it clearer that the mapping is
|
|
not simple lowercasing. Changed "Design note" to "Rationale".
|
|
|
|
3.2: Made it clearer that the normalization is with form KC.
|
|
|
|
5: Removed the previous third paragraph, which discussed the DNS service
|
|
interface.
|
|
|
|
5.1: Added references for URIs.
|
|
|
|
5.4: Changed the sentence about the replacement character to read
|
|
"...and is often displayed by renderers to indicate...".
|
|
|
|
5.10: Added this section, which prohibits U+3002.
|
|
|
|
6: Removed "yet" from the first sentence.
|
|
|
|
8: Fixed the reference for [IDNReq] and [STD13]. Removed the reference
|
|
to [IDNComp]. Added the reference for [URIs].
|
|
|
|
C: Changed wording of the section.
|
|
|
|
E, F, G: Added tags to the beginning and end of the tables.
|
|
|
|
F: Added 3002 (from section 5.10). Added FDD0-FDEF, which were omitted
|
|
in error.
|
|
|
|
|
|
C. IANA Considerations
|
|
|
|
None.
|
|
|
|
|
|
D. Author Contact Information
|
|
|
|
Paul Hoffman
|
|
Internet Mail Consortium and VPN Consortium
|
|
127 Segre Place
|
|
Santa Cruz, CA 95060 USA
|
|
paul.hoffman@imc.org and paul.hoffman@vpnc.org
|
|
|
|
Marc Blanchet
|
|
Viagenie inc.
|
|
2875 boul. Laurier, bur. 300
|
|
Ste-Foy, Quebec, Canada, G1V 2M2
|
|
Marc.Blanchet@viagenie.qc.ca
|
|
|
|
|
|
E. Mapping Table
|
|
|
|
The following is the mapping table from Section 3. The table has three
|
|
columns:
|
|
- the character that is mapped from
|
|
- the zero or more characters that it is mapped to
|
|
- the reason for the mapping
|
|
The columns are separated by semicolons. Note that the second column may
|
|
be empty, or it may have one character, or it may have more than one
|
|
character, with each character separated by a space.
|
|
|
|
----- Start Mapping Table -----
|
|
0041; 0061; Case map
|
|
0042; 0062; Case map
|
|
0043; 0063; Case map
|
|
0044; 0064; Case map
|
|
0045; 0065; Case map
|
|
0046; 0066; Case map
|
|
0047; 0067; Case map
|
|
0048; 0068; Case map
|
|
0049; 0069; Case map
|
|
004A; 006A; Case map
|
|
004B; 006B; Case map
|
|
004C; 006C; Case map
|
|
004D; 006D; Case map
|
|
004E; 006E; Case map
|
|
004F; 006F; Case map
|
|
0050; 0070; Case map
|
|
0051; 0071; Case map
|
|
0052; 0072; Case map
|
|
0053; 0073; Case map
|
|
0054; 0074; Case map
|
|
0055; 0075; Case map
|
|
0056; 0076; Case map
|
|
0057; 0077; Case map
|
|
0058; 0078; Case map
|
|
0059; 0079; Case map
|
|
005A; 007A; Case map
|
|
00AD; ; Map out
|
|
00B5; 03BC; Case map
|
|
00C0; 00E0; Case map
|
|
00C1; 00E1; Case map
|
|
00C2; 00E2; Case map
|
|
00C3; 00E3; Case map
|
|
00C4; 00E4; Case map
|
|
00C5; 00E5; Case map
|
|
00C6; 00E6; Case map
|
|
00C7; 00E7; Case map
|
|
00C8; 00E8; Case map
|
|
00C9; 00E9; Case map
|
|
00CA; 00EA; Case map
|
|
00CB; 00EB; Case map
|
|
00CC; 00EC; Case map
|
|
00CD; 00ED; Case map
|
|
00CE; 00EE; Case map
|
|
00CF; 00EF; Case map
|
|
00D0; 00F0; Case map
|
|
00D1; 00F1; Case map
|
|
00D2; 00F2; Case map
|
|
00D3; 00F3; Case map
|
|
00D4; 00F4; Case map
|
|
00D5; 00F5; Case map
|
|
00D6; 00F6; Case map
|
|
00D8; 00F8; Case map
|
|
00D9; 00F9; Case map
|
|
00DA; 00FA; Case map
|
|
00DB; 00FB; Case map
|
|
00DC; 00FC; Case map
|
|
00DD; 00FD; Case map
|
|
00DE; 00FE; Case map
|
|
00DF; 0073 0073; Case map
|
|
0100; 0101; Case map
|
|
0102; 0103; Case map
|
|
0104; 0105; Case map
|
|
0106; 0107; Case map
|
|
0108; 0109; Case map
|
|
010A; 010B; Case map
|
|
010C; 010D; Case map
|
|
010E; 010F; Case map
|
|
0110; 0111; Case map
|
|
0112; 0113; Case map
|
|
0114; 0115; Case map
|
|
0116; 0117; Case map
|
|
0118; 0119; Case map
|
|
011A; 011B; Case map
|
|
011C; 011D; Case map
|
|
011E; 011F; Case map
|
|
0120; 0121; Case map
|
|
0122; 0123; Case map
|
|
0124; 0125; Case map
|
|
0126; 0127; Case map
|
|
0128; 0129; Case map
|
|
012A; 012B; Case map
|
|
012C; 012D; Case map
|
|
012E; 012F; Case map
|
|
0130; 0069; Case map
|
|
0131; 0069; Case map
|
|
0132; 0133; Case map
|
|
0134; 0135; Case map
|
|
0136; 0137; Case map
|
|
0139; 013A; Case map
|
|
013B; 013C; Case map
|
|
013D; 013E; Case map
|
|
013F; 0140; Case map
|
|
0141; 0142; Case map
|
|
0143; 0144; Case map
|
|
0145; 0146; Case map
|
|
0147; 0148; Case map
|
|
0149; 02BC 006E; Case map
|
|
014A; 014B; Case map
|
|
014C; 014D; Case map
|
|
014E; 014F; Case map
|
|
0150; 0151; Case map
|
|
0152; 0153; Case map
|
|
0154; 0155; Case map
|
|
0156; 0157; Case map
|
|
0158; 0159; Case map
|
|
015A; 015B; Case map
|
|
015C; 015D; Case map
|
|
015E; 015F; Case map
|
|
0160; 0161; Case map
|
|
0162; 0163; Case map
|
|
0164; 0165; Case map
|
|
0166; 0167; Case map
|
|
0168; 0169; Case map
|
|
016A; 016B; Case map
|
|
016C; 016D; Case map
|
|
016E; 016F; Case map
|
|
0170; 0171; Case map
|
|
0172; 0173; Case map
|
|
0174; 0175; Case map
|
|
0176; 0177; Case map
|
|
0178; 00FF; Case map
|
|
0179; 017A; Case map
|
|
017B; 017C; Case map
|
|
017D; 017E; Case map
|
|
017F; 0073; Case map
|
|
0181; 0253; Case map
|
|
0182; 0183; Case map
|
|
0184; 0185; Case map
|
|
0186; 0254; Case map
|
|
0187; 0188; Case map
|
|
0189; 0256; Case map
|
|
018A; 0257; Case map
|
|
018B; 018C; Case map
|
|
018E; 01DD; Case map
|
|
018F; 0259; Case map
|
|
0190; 025B; Case map
|
|
0191; 0192; Case map
|
|
0193; 0260; Case map
|
|
0194; 0263; Case map
|
|
0196; 0269; Case map
|
|
0197; 0268; Case map
|
|
0198; 0199; Case map
|
|
019C; 026F; Case map
|
|
019D; 0272; Case map
|
|
019F; 0275; Case map
|
|
01A0; 01A1; Case map
|
|
01A2; 01A3; Case map
|
|
01A4; 01A5; Case map
|
|
01A6; 0280; Case map
|
|
01A7; 01A8; Case map
|
|
01A9; 0283; Case map
|
|
01AC; 01AD; Case map
|
|
01AE; 0288; Case map
|
|
01AF; 01B0; Case map
|
|
01B1; 028A; Case map
|
|
01B2; 028B; Case map
|
|
01B3; 01B4; Case map
|
|
01B5; 01B6; Case map
|
|
01B7; 0292; Case map
|
|
01B8; 01B9; Case map
|
|
01BC; 01BD; Case map
|
|
01C4; 01C6; Case map
|
|
01C5; 01C6; Case map
|
|
01C7; 01C9; Case map
|
|
01C8; 01C9; Case map
|
|
01CA; 01CC; Case map
|
|
01CB; 01CC; Case map
|
|
01CD; 01CE; Case map
|
|
01CF; 01D0; Case map
|
|
01D1; 01D2; Case map
|
|
01D3; 01D4; Case map
|
|
01D5; 01D6; Case map
|
|
01D7; 01D8; Case map
|
|
01D9; 01DA; Case map
|
|
01DB; 01DC; Case map
|
|
01DE; 01DF; Case map
|
|
01E0; 01E1; Case map
|
|
01E2; 01E3; Case map
|
|
01E4; 01E5; Case map
|
|
01E6; 01E7; Case map
|
|
01E8; 01E9; Case map
|
|
01EA; 01EB; Case map
|
|
01EC; 01ED; Case map
|
|
01EE; 01EF; Case map
|
|
01F0; 006A 030C; Case map
|
|
01F1; 01F3; Case map
|
|
01F2; 01F3; Case map
|
|
01F4; 01F5; Case map
|
|
01F6; 0195; Case map
|
|
01F7; 01BF; Case map
|
|
01F8; 01F9; Case map
|
|
01FA; 01FB; Case map
|
|
01FC; 01FD; Case map
|
|
01FE; 01FF; Case map
|
|
0200; 0201; Case map
|
|
0202; 0203; Case map
|
|
0204; 0205; Case map
|
|
0206; 0207; Case map
|
|
0208; 0209; Case map
|
|
020A; 020B; Case map
|
|
020C; 020D; Case map
|
|
020E; 020F; Case map
|
|
0210; 0211; Case map
|
|
0212; 0213; Case map
|
|
0214; 0215; Case map
|
|
0216; 0217; Case map
|
|
0218; 0219; Case map
|
|
021A; 021B; Case map
|
|
021C; 021D; Case map
|
|
021E; 021F; Case map
|
|
0222; 0223; Case map
|
|
0224; 0225; Case map
|
|
0226; 0227; Case map
|
|
0228; 0229; Case map
|
|
022A; 022B; Case map
|
|
022C; 022D; Case map
|
|
022E; 022F; Case map
|
|
0230; 0231; Case map
|
|
0232; 0233; Case map
|
|
0345; 03B9; Case map
|
|
037A; 0020 03B9; Additional folding
|
|
0386; 03AC; Case map
|
|
0388; 03AD; Case map
|
|
0389; 03AE; Case map
|
|
038A; 03AF; Case map
|
|
038C; 03CC; Case map
|
|
038E; 03CD; Case map
|
|
038F; 03CE; Case map
|
|
0390; 03B9 0308 0301; Case map
|
|
0391; 03B1; Case map
|
|
0392; 03B2; Case map
|
|
0393; 03B3; Case map
|
|
0394; 03B4; Case map
|
|
0395; 03B5; Case map
|
|
0396; 03B6; Case map
|
|
0397; 03B7; Case map
|
|
0398; 03B8; Case map
|
|
0399; 03B9; Case map
|
|
039A; 03BA; Case map
|
|
039B; 03BB; Case map
|
|
039C; 03BC; Case map
|
|
039D; 03BD; Case map
|
|
039E; 03BE; Case map
|
|
039F; 03BF; Case map
|
|
03A0; 03C0; Case map
|
|
03A1; 03C1; Case map
|
|
03A3; 03C2; Case map
|
|
03A4; 03C4; Case map
|
|
03A5; 03C5; Case map
|
|
03A6; 03C6; Case map
|
|
03A7; 03C7; Case map
|
|
03A8; 03C8; Case map
|
|
03A9; 03C9; Case map
|
|
03AA; 03CA; Case map
|
|
03AB; 03CB; Case map
|
|
03B0; 03C5 0308 0301; Case map
|
|
03C2; 03C2; Case map
|
|
03C3; 03C2; Case map
|
|
03D0; 03B2; Case map
|
|
03D1; 03B8; Case map
|
|
03D2; 03C5; Additional folding
|
|
03D3; 03CD; Additional folding
|
|
03D4; 03CB; Additional folding
|
|
03D5; 03C6; Case map
|
|
03D6; 03C0; Case map
|
|
03DA; 03DB; Case map
|
|
03DC; 03DD; Case map
|
|
03DE; 03DF; Case map
|
|
03E0; 03E1; Case map
|
|
03E2; 03E3; Case map
|
|
03E4; 03E5; Case map
|
|
03E6; 03E7; Case map
|
|
03E8; 03E9; Case map
|
|
03EA; 03EB; Case map
|
|
03EC; 03ED; Case map
|
|
03EE; 03EF; Case map
|
|
03F0; 03BA; Case map
|
|
03F1; 03C1; Case map
|
|
03F2; 03C2; Case map
|
|
0400; 0450; Case map
|
|
0401; 0451; Case map
|
|
0402; 0452; Case map
|
|
0403; 0453; Case map
|
|
0404; 0454; Case map
|
|
0405; 0455; Case map
|
|
0406; 0456; Case map
|
|
0407; 0457; Case map
|
|
0408; 0458; Case map
|
|
0409; 0459; Case map
|
|
040A; 045A; Case map
|
|
040B; 045B; Case map
|
|
040C; 045C; Case map
|
|
040D; 045D; Case map
|
|
040E; 045E; Case map
|
|
040F; 045F; Case map
|
|
0410; 0430; Case map
|
|
0411; 0431; Case map
|
|
0412; 0432; Case map
|
|
0413; 0433; Case map
|
|
0414; 0434; Case map
|
|
0415; 0435; Case map
|
|
0416; 0436; Case map
|
|
0417; 0437; Case map
|
|
0418; 0438; Case map
|
|
0419; 0439; Case map
|
|
041A; 043A; Case map
|
|
041B; 043B; Case map
|
|
041C; 043C; Case map
|
|
041D; 043D; Case map
|
|
041E; 043E; Case map
|
|
041F; 043F; Case map
|
|
0420; 0440; Case map
|
|
0421; 0441; Case map
|
|
0422; 0442; Case map
|
|
0423; 0443; Case map
|
|
0424; 0444; Case map
|
|
0425; 0445; Case map
|
|
0426; 0446; Case map
|
|
0427; 0447; Case map
|
|
0428; 0448; Case map
|
|
0429; 0449; Case map
|
|
042A; 044A; Case map
|
|
042B; 044B; Case map
|
|
042C; 044C; Case map
|
|
042D; 044D; Case map
|
|
042E; 044E; Case map
|
|
042F; 044F; Case map
|
|
0460; 0461; Case map
|
|
0462; 0463; Case map
|
|
0464; 0465; Case map
|
|
0466; 0467; Case map
|
|
0468; 0469; Case map
|
|
046A; 046B; Case map
|
|
046C; 046D; Case map
|
|
046E; 046F; Case map
|
|
0470; 0471; Case map
|
|
0472; 0473; Case map
|
|
0474; 0475; Case map
|
|
0476; 0477; Case map
|
|
0478; 0479; Case map
|
|
047A; 047B; Case map
|
|
047C; 047D; Case map
|
|
047E; 047F; Case map
|
|
0480; 0481; Case map
|
|
048C; 048D; Case map
|
|
048E; 048F; Case map
|
|
0490; 0491; Case map
|
|
0492; 0493; Case map
|
|
0494; 0495; Case map
|
|
0496; 0497; Case map
|
|
0498; 0499; Case map
|
|
049A; 049B; Case map
|
|
049C; 049D; Case map
|
|
049E; 049F; Case map
|
|
04A0; 04A1; Case map
|
|
04A2; 04A3; Case map
|
|
04A4; 04A5; Case map
|
|
04A6; 04A7; Case map
|
|
04A8; 04A9; Case map
|
|
04AA; 04AB; Case map
|
|
04AC; 04AD; Case map
|
|
04AE; 04AF; Case map
|
|
04B0; 04B1; Case map
|
|
04B2; 04B3; Case map
|
|
04B4; 04B5; Case map
|
|
04B6; 04B7; Case map
|
|
04B8; 04B9; Case map
|
|
04BA; 04BB; Case map
|
|
04BC; 04BD; Case map
|
|
04BE; 04BF; Case map
|
|
04C1; 04C2; Case map
|
|
04C3; 04C4; Case map
|
|
04C7; 04C8; Case map
|
|
04CB; 04CC; Case map
|
|
04D0; 04D1; Case map
|
|
04D2; 04D3; Case map
|
|
04D4; 04D5; Case map
|
|
04D6; 04D7; Case map
|
|
04D8; 04D9; Case map
|
|
04DA; 04DB; Case map
|
|
04DC; 04DD; Case map
|
|
04DE; 04DF; Case map
|
|
04E0; 04E1; Case map
|
|
04E2; 04E3; Case map
|
|
04E4; 04E5; Case map
|
|
04E6; 04E7; Case map
|
|
04E8; 04E9; Case map
|
|
04EA; 04EB; Case map
|
|
04EC; 04ED; Case map
|
|
04EE; 04EF; Case map
|
|
04F0; 04F1; Case map
|
|
04F2; 04F3; Case map
|
|
04F4; 04F5; Case map
|
|
04F8; 04F9; Case map
|
|
0531; 0561; Case map
|
|
0532; 0562; Case map
|
|
0533; 0563; Case map
|
|
0534; 0564; Case map
|
|
0535; 0565; Case map
|
|
0536; 0566; Case map
|
|
0537; 0567; Case map
|
|
0538; 0568; Case map
|
|
0539; 0569; Case map
|
|
053A; 056A; Case map
|
|
053B; 056B; Case map
|
|
053C; 056C; Case map
|
|
053D; 056D; Case map
|
|
053E; 056E; Case map
|
|
053F; 056F; Case map
|
|
0540; 0570; Case map
|
|
0541; 0571; Case map
|
|
0542; 0572; Case map
|
|
0543; 0573; Case map
|
|
0544; 0574; Case map
|
|
0545; 0575; Case map
|
|
0546; 0576; Case map
|
|
0547; 0577; Case map
|
|
0548; 0578; Case map
|
|
0549; 0579; Case map
|
|
054A; 057A; Case map
|
|
054B; 057B; Case map
|
|
054C; 057C; Case map
|
|
054D; 057D; Case map
|
|
054E; 057E; Case map
|
|
054F; 057F; Case map
|
|
0550; 0580; Case map
|
|
0551; 0581; Case map
|
|
0552; 0582; Case map
|
|
0553; 0583; Case map
|
|
0554; 0584; Case map
|
|
0555; 0585; Case map
|
|
0556; 0586; Case map
|
|
0587; 0565 0582; Case map
|
|
1806; ; Map out
|
|
180B; ; Map out
|
|
180C; ; Map out
|
|
180D; ; Map out
|
|
1E00; 1E01; Case map
|
|
1E02; 1E03; Case map
|
|
1E04; 1E05; Case map
|
|
1E06; 1E07; Case map
|
|
1E08; 1E09; Case map
|
|
1E0A; 1E0B; Case map
|
|
1E0C; 1E0D; Case map
|
|
1E0E; 1E0F; Case map
|
|
1E10; 1E11; Case map
|
|
1E12; 1E13; Case map
|
|
1E14; 1E15; Case map
|
|
1E16; 1E17; Case map
|
|
1E18; 1E19; Case map
|
|
1E1A; 1E1B; Case map
|
|
1E1C; 1E1D; Case map
|
|
1E1E; 1E1F; Case map
|
|
1E20; 1E21; Case map
|
|
1E22; 1E23; Case map
|
|
1E24; 1E25; Case map
|
|
1E26; 1E27; Case map
|
|
1E28; 1E29; Case map
|
|
1E2A; 1E2B; Case map
|
|
1E2C; 1E2D; Case map
|
|
1E2E; 1E2F; Case map
|
|
1E30; 1E31; Case map
|
|
1E32; 1E33; Case map
|
|
1E34; 1E35; Case map
|
|
1E36; 1E37; Case map
|
|
1E38; 1E39; Case map
|
|
1E3A; 1E3B; Case map
|
|
1E3C; 1E3D; Case map
|
|
1E3E; 1E3F; Case map
|
|
1E40; 1E41; Case map
|
|
1E42; 1E43; Case map
|
|
1E44; 1E45; Case map
|
|
1E46; 1E47; Case map
|
|
1E48; 1E49; Case map
|
|
1E4A; 1E4B; Case map
|
|
1E4C; 1E4D; Case map
|
|
1E4E; 1E4F; Case map
|
|
1E50; 1E51; Case map
|
|
1E52; 1E53; Case map
|
|
1E54; 1E55; Case map
|
|
1E56; 1E57; Case map
|
|
1E58; 1E59; Case map
|
|
1E5A; 1E5B; Case map
|
|
1E5C; 1E5D; Case map
|
|
1E5E; 1E5F; Case map
|
|
1E60; 1E61; Case map
|
|
1E62; 1E63; Case map
|
|
1E64; 1E65; Case map
|
|
1E66; 1E67; Case map
|
|
1E68; 1E69; Case map
|
|
1E6A; 1E6B; Case map
|
|
1E6C; 1E6D; Case map
|
|
1E6E; 1E6F; Case map
|
|
1E70; 1E71; Case map
|
|
1E72; 1E73; Case map
|
|
1E74; 1E75; Case map
|
|
1E76; 1E77; Case map
|
|
1E78; 1E79; Case map
|
|
1E7A; 1E7B; Case map
|
|
1E7C; 1E7D; Case map
|
|
1E7E; 1E7F; Case map
|
|
1E80; 1E81; Case map
|
|
1E82; 1E83; Case map
|
|
1E84; 1E85; Case map
|
|
1E86; 1E87; Case map
|
|
1E88; 1E89; Case map
|
|
1E8A; 1E8B; Case map
|
|
1E8C; 1E8D; Case map
|
|
1E8E; 1E8F; Case map
|
|
1E90; 1E91; Case map
|
|
1E92; 1E93; Case map
|
|
1E94; 1E95; Case map
|
|
1E96; 0068 0331; Case map
|
|
1E97; 0074 0308; Case map
|
|
1E98; 0077 030A; Case map
|
|
1E99; 0079 030A; Case map
|
|
1E9A; 0061 02BE; Case map
|
|
1E9B; 1E61; Case map
|
|
1EA0; 1EA1; Case map
|
|
1EA2; 1EA3; Case map
|
|
1EA4; 1EA5; Case map
|
|
1EA6; 1EA7; Case map
|
|
1EA8; 1EA9; Case map
|
|
1EAA; 1EAB; Case map
|
|
1EAC; 1EAD; Case map
|
|
1EAE; 1EAF; Case map
|
|
1EB0; 1EB1; Case map
|
|
1EB2; 1EB3; Case map
|
|
1EB4; 1EB5; Case map
|
|
1EB6; 1EB7; Case map
|
|
1EB8; 1EB9; Case map
|
|
1EBA; 1EBB; Case map
|
|
1EBC; 1EBD; Case map
|
|
1EBE; 1EBF; Case map
|
|
1EC0; 1EC1; Case map
|
|
1EC2; 1EC3; Case map
|
|
1EC4; 1EC5; Case map
|
|
1EC6; 1EC7; Case map
|
|
1EC8; 1EC9; Case map
|
|
1ECA; 1ECB; Case map
|
|
1ECC; 1ECD; Case map
|
|
1ECE; 1ECF; Case map
|
|
1ED0; 1ED1; Case map
|
|
1ED2; 1ED3; Case map
|
|
1ED4; 1ED5; Case map
|
|
1ED6; 1ED7; Case map
|
|
1ED8; 1ED9; Case map
|
|
1EDA; 1EDB; Case map
|
|
1EDC; 1EDD; Case map
|
|
1EDE; 1EDF; Case map
|
|
1EE0; 1EE1; Case map
|
|
1EE2; 1EE3; Case map
|
|
1EE4; 1EE5; Case map
|
|
1EE6; 1EE7; Case map
|
|
1EE8; 1EE9; Case map
|
|
1EEA; 1EEB; Case map
|
|
1EEC; 1EED; Case map
|
|
1EEE; 1EEF; Case map
|
|
1EF0; 1EF1; Case map
|
|
1EF2; 1EF3; Case map
|
|
1EF4; 1EF5; Case map
|
|
1EF6; 1EF7; Case map
|
|
1EF8; 1EF9; Case map
|
|
1F08; 1F00; Case map
|
|
1F09; 1F01; Case map
|
|
1F0A; 1F02; Case map
|
|
1F0B; 1F03; Case map
|
|
1F0C; 1F04; Case map
|
|
1F0D; 1F05; Case map
|
|
1F0E; 1F06; Case map
|
|
1F0F; 1F07; Case map
|
|
1F18; 1F10; Case map
|
|
1F19; 1F11; Case map
|
|
1F1A; 1F12; Case map
|
|
1F1B; 1F13; Case map
|
|
1F1C; 1F14; Case map
|
|
1F1D; 1F15; Case map
|
|
1F28; 1F20; Case map
|
|
1F29; 1F21; Case map
|
|
1F2A; 1F22; Case map
|
|
1F2B; 1F23; Case map
|
|
1F2C; 1F24; Case map
|
|
1F2D; 1F25; Case map
|
|
1F2E; 1F26; Case map
|
|
1F2F; 1F27; Case map
|
|
1F38; 1F30; Case map
|
|
1F39; 1F31; Case map
|
|
1F3A; 1F32; Case map
|
|
1F3B; 1F33; Case map
|
|
1F3C; 1F34; Case map
|
|
1F3D; 1F35; Case map
|
|
1F3E; 1F36; Case map
|
|
1F3F; 1F37; Case map
|
|
1F48; 1F40; Case map
|
|
1F49; 1F41; Case map
|
|
1F4A; 1F42; Case map
|
|
1F4B; 1F43; Case map
|
|
1F4C; 1F44; Case map
|
|
1F4D; 1F45; Case map
|
|
1F50; 03C5 0313; Case map
|
|
1F52; 03C5 0313 0300; Case map
|
|
1F54; 03C5 0313 0301; Case map
|
|
1F56; 03C5 0313 0342; Case map
|
|
1F59; 1F51; Case map
|
|
1F5B; 1F53; Case map
|
|
1F5D; 1F55; Case map
|
|
1F5F; 1F57; Case map
|
|
1F68; 1F60; Case map
|
|
1F69; 1F61; Case map
|
|
1F6A; 1F62; Case map
|
|
1F6B; 1F63; Case map
|
|
1F6C; 1F64; Case map
|
|
1F6D; 1F65; Case map
|
|
1F6E; 1F66; Case map
|
|
1F6F; 1F67; Case map
|
|
1F80; 1F00 03B9; Case map
|
|
1F81; 1F01 03B9; Case map
|
|
1F82; 1F02 03B9; Case map
|
|
1F83; 1F03 03B9; Case map
|
|
1F84; 1F04 03B9; Case map
|
|
1F85; 1F05 03B9; Case map
|
|
1F86; 1F06 03B9; Case map
|
|
1F87; 1F07 03B9; Case map
|
|
1F88; 1F00 03B9; Case map
|
|
1F89; 1F01 03B9; Case map
|
|
1F8A; 1F02 03B9; Case map
|
|
1F8B; 1F03 03B9; Case map
|
|
1F8C; 1F04 03B9; Case map
|
|
1F8D; 1F05 03B9; Case map
|
|
1F8E; 1F06 03B9; Case map
|
|
1F8F; 1F07 03B9; Case map
|
|
1F90; 1F20 03B9; Case map
|
|
1F91; 1F21 03B9; Case map
|
|
1F92; 1F22 03B9; Case map
|
|
1F93; 1F23 03B9; Case map
|
|
1F94; 1F24 03B9; Case map
|
|
1F95; 1F25 03B9; Case map
|
|
1F96; 1F26 03B9; Case map
|
|
1F97; 1F27 03B9; Case map
|
|
1F98; 1F20 03B9; Case map
|
|
1F99; 1F21 03B9; Case map
|
|
1F9A; 1F22 03B9; Case map
|
|
1F9B; 1F23 03B9; Case map
|
|
1F9C; 1F24 03B9; Case map
|
|
1F9D; 1F25 03B9; Case map
|
|
1F9E; 1F26 03B9; Case map
|
|
1F9F; 1F27 03B9; Case map
|
|
1FA0; 1F60 03B9; Case map
|
|
1FA1; 1F61 03B9; Case map
|
|
1FA2; 1F62 03B9; Case map
|
|
1FA3; 1F63 03B9; Case map
|
|
1FA4; 1F64 03B9; Case map
|
|
1FA5; 1F65 03B9; Case map
|
|
1FA6; 1F66 03B9; Case map
|
|
1FA7; 1F67 03B9; Case map
|
|
1FA8; 1F60 03B9; Case map
|
|
1FA9; 1F61 03B9; Case map
|
|
1FAA; 1F62 03B9; Case map
|
|
1FAB; 1F63 03B9; Case map
|
|
1FAC; 1F64 03B9; Case map
|
|
1FAD; 1F65 03B9; Case map
|
|
1FAE; 1F66 03B9; Case map
|
|
1FAF; 1F67 03B9; Case map
|
|
1FB2; 1F70 03B9; Case map
|
|
1FB3; 03B1 03B9; Case map
|
|
1FB4; 03AC 03B9; Case map
|
|
1FB6; 03B1 0342; Case map
|
|
1FB7; 03B1 0342 03B9; Case map
|
|
1FB8; 1FB0; Case map
|
|
1FB9; 1FB1; Case map
|
|
1FBA; 1F70; Case map
|
|
1FBB; 1F71; Case map
|
|
1FBC; 03B1 03B9; Case map
|
|
1FBE; 03B9; Case map
|
|
1FC2; 1F74 03B9; Case map
|
|
1FC3; 03B7 03B9; Case map
|
|
1FC4; 03AE 03B9; Case map
|
|
1FC6; 03B7 0342; Case map
|
|
1FC7; 03B7 0342 03B9; Case map
|
|
1FC8; 1F72; Case map
|
|
1FC9; 1F73; Case map
|
|
1FCA; 1F74; Case map
|
|
1FCB; 1F75; Case map
|
|
1FCC; 03B7 03B9; Case map
|
|
1FD2; 03B9 0308 0300; Case map
|
|
1FD3; 03B9 0308 0301; Case map
|
|
1FD6; 03B9 0342; Case map
|
|
1FD7; 03B9 0308 0342; Case map
|
|
1FD8; 1FD0; Case map
|
|
1FD9; 1FD1; Case map
|
|
1FDA; 1F76; Case map
|
|
1FDB; 1F77; Case map
|
|
1FE2; 03C5 0308 0300; Case map
|
|
1FE3; 03C5 0308 0301; Case map
|
|
1FE4; 03C1 0313; Case map
|
|
1FE6; 03C5 0342; Case map
|
|
1FE7; 03C5 0308 0342; Case map
|
|
1FE8; 1FE0; Case map
|
|
1FE9; 1FE1; Case map
|
|
1FEA; 1F7A; Case map
|
|
1FEB; 1F7B; Case map
|
|
1FEC; 1FE5; Case map
|
|
1FF2; 1F7C 03B9; Case map
|
|
1FF3; 03C9 03B9; Case map
|
|
1FF4; 03CE 03B9; Case map
|
|
1FF6; 03C9 0342; Case map
|
|
1FF7; 03C9 0342 03B9; Case map
|
|
1FF8; 1F78; Case map
|
|
1FF9; 1F79; Case map
|
|
1FFA; 1F7C; Case map
|
|
1FFB; 1F7D; Case map
|
|
1FFC; 03C9 03B9; Case map
|
|
200B; ; Map out
|
|
200C; ; Map out
|
|
200D; ; Map out
|
|
20A8; 0072 0073; Additional folding
|
|
2102; 0063; Additional folding
|
|
2103; 00B0 0063; Additional folding
|
|
2107; 025B; Additional folding
|
|
2109; 00B0 0066; Additional folding
|
|
210B; 0068; Additional folding
|
|
210C; 0068; Additional folding
|
|
210D; 0068; Additional folding
|
|
2110; 0069; Additional folding
|
|
2111; 0069; Additional folding
|
|
2112; 006C; Additional folding
|
|
2115; 006E; Additional folding
|
|
2116; 006E 006F; Additional folding
|
|
2119; 0070; Additional folding
|
|
211A; 0071; Additional folding
|
|
211B; 0072; Additional folding
|
|
211C; 0072; Additional folding
|
|
211D; 0072; Additional folding
|
|
2120; 0073 006D; Additional folding
|
|
2121; 0074 0065 006C; Additional folding
|
|
2122; 0074 006D; Additional folding
|
|
2124; 007A; Additional folding
|
|
2126; 03C9; Case map
|
|
2128; 007A; Additional folding
|
|
212A; 006B; Case map
|
|
212B; 00E5; Case map
|
|
212C; 0062; Additional folding
|
|
212D; 0063; Additional folding
|
|
2130; 0065; Additional folding
|
|
2131; 0066; Additional folding
|
|
2133; 006D; Additional folding
|
|
2160; 2170; Case map
|
|
2161; 2171; Case map
|
|
2162; 2172; Case map
|
|
2163; 2173; Case map
|
|
2164; 2174; Case map
|
|
2165; 2175; Case map
|
|
2166; 2176; Case map
|
|
2167; 2177; Case map
|
|
2168; 2178; Case map
|
|
2169; 2179; Case map
|
|
216A; 217A; Case map
|
|
216B; 217B; Case map
|
|
216C; 217C; Case map
|
|
216D; 217D; Case map
|
|
216E; 217E; Case map
|
|
216F; 217F; Case map
|
|
24B6; 24D0; Case map
|
|
24B7; 24D1; Case map
|
|
24B8; 24D2; Case map
|
|
24B9; 24D3; Case map
|
|
24BA; 24D4; Case map
|
|
24BB; 24D5; Case map
|
|
24BC; 24D6; Case map
|
|
24BD; 24D7; Case map
|
|
24BE; 24D8; Case map
|
|
24BF; 24D9; Case map
|
|
24C0; 24DA; Case map
|
|
24C1; 24DB; Case map
|
|
24C2; 24DC; Case map
|
|
24C3; 24DD; Case map
|
|
24C4; 24DE; Case map
|
|
24C5; 24DF; Case map
|
|
24C6; 24E0; Case map
|
|
24C7; 24E1; Case map
|
|
24C8; 24E2; Case map
|
|
24C9; 24E3; Case map
|
|
24CA; 24E4; Case map
|
|
24CB; 24E5; Case map
|
|
24CC; 24E6; Case map
|
|
24CD; 24E7; Case map
|
|
24CE; 24E8; Case map
|
|
24CF; 24E9; Case map
|
|
3371; 0068 0070 0061; Additional folding
|
|
3373; 0061 0075; Additional folding
|
|
3375; 006F 0076; Additional folding
|
|
3380; 0070 0061; Additional folding
|
|
3381; 006E 0061; Additional folding
|
|
3382; 03BC 0061; Additional folding
|
|
3383; 006D 0061; Additional folding
|
|
3384; 006B 0061; Additional folding
|
|
3385; 006B 0062; Additional folding
|
|
3386; 006D 0062; Additional folding
|
|
3387; 0067 0062; Additional folding
|
|
338A; 0070 0066; Additional folding
|
|
338B; 006E 0066; Additional folding
|
|
338C; 03BC 0066; Additional folding
|
|
3390; 0068 007A; Additional folding
|
|
3391; 006B 0068 007A; Additional folding
|
|
3392; 006D 0068 007A; Additional folding
|
|
3393; 0067 0068 007A; Additional folding
|
|
3394; 0074 0068 007A; Additional folding
|
|
33A9; 0070 0061; Additional folding
|
|
33AA; 006B 0070 0061; Additional folding
|
|
33AB; 006D 0070 0061; Additional folding
|
|
33AC; 0067 0070 0061; Additional folding
|
|
33B4; 0070 0076; Additional folding
|
|
33B5; 006E 0076; Additional folding
|
|
33B6; 03BC 0076; Additional folding
|
|
33B7; 006D 0076; Additional folding
|
|
33B8; 006B 0076; Additional folding
|
|
33B9; 006D 0076; Additional folding
|
|
33BA; 0070 0077; Additional folding
|
|
33BB; 006E 0077; Additional folding
|
|
33BC; 03BC 0077; Additional folding
|
|
33BD; 006D 0077; Additional folding
|
|
33BE; 006B 0077; Additional folding
|
|
33BF; 006D 0077; Additional folding
|
|
33C0; 006B 03C9; Additional folding
|
|
33C1; 006D 03C9; Additional folding
|
|
33C3; 0062 0071; Additional folding
|
|
33C6; 0063 2215 006B 0067; Additional folding
|
|
33C7; 0063 006F 002E; Additional folding
|
|
33C8; 0064 0062; Additional folding
|
|
33C9; 0067 0079; Additional folding
|
|
33CB; 0068 0070; Additional folding
|
|
33CD; 006B 006B; Additional folding
|
|
33CE; 006B 006D; Additional folding
|
|
33D7; 0070 0068; Additional folding
|
|
33D9; 0070 0070 006D; Additional folding
|
|
33DA; 0070 0072; Additional folding
|
|
33DC; 0073 0076; Additional folding
|
|
33DD; 0077 0062; Additional folding
|
|
FB00; 0066 0066; Case map
|
|
FB01; 0066 0069; Case map
|
|
FB02; 0066 006C; Case map
|
|
FB03; 0066 0066 0069; Case map
|
|
FB04; 0066 0066 006C; Case map
|
|
FB05; 0073 0074; Case map
|
|
FB06; 0073 0074; Case map
|
|
FB13; 0574 0576; Case map
|
|
FB14; 0574 0565; Case map
|
|
FB15; 0574 056B; Case map
|
|
FB16; 057E 0576; Case map
|
|
FB17; 0574 056D; Case map
|
|
FEFF; ; Map out
|
|
FF21; FF41; Case map
|
|
FF22; FF42; Case map
|
|
FF23; FF43; Case map
|
|
FF24; FF44; Case map
|
|
FF25; FF45; Case map
|
|
FF26; FF46; Case map
|
|
FF27; FF47; Case map
|
|
FF28; FF48; Case map
|
|
FF29; FF49; Case map
|
|
FF2A; FF4A; Case map
|
|
FF2B; FF4B; Case map
|
|
FF2C; FF4C; Case map
|
|
FF2D; FF4D; Case map
|
|
FF2E; FF4E; Case map
|
|
FF2F; FF4F; Case map
|
|
FF30; FF50; Case map
|
|
FF31; FF51; Case map
|
|
FF32; FF52; Case map
|
|
FF33; FF53; Case map
|
|
FF34; FF54; Case map
|
|
FF35; FF55; Case map
|
|
FF36; FF56; Case map
|
|
FF37; FF57; Case map
|
|
FF38; FF58; Case map
|
|
FF39; FF59; Case map
|
|
FF3A; FF5A; Case map
|
|
----- End Mapping Table -----
|
|
|
|
|
|
F. Prohibited Code Point List
|
|
|
|
----- Start Prohibited Table -----
|
|
0000-002C
|
|
002E-002F
|
|
003A-0040
|
|
005B-0060
|
|
007B-007F
|
|
0080-009F
|
|
00A0
|
|
1680
|
|
2000
|
|
2001
|
|
2002
|
|
2003
|
|
2004
|
|
2005
|
|
2006
|
|
2007
|
|
2008
|
|
2009
|
|
200A
|
|
200B
|
|
200E
|
|
200F
|
|
2028
|
|
2029
|
|
202A
|
|
202B
|
|
202C
|
|
202D
|
|
202E
|
|
202F
|
|
206A
|
|
206B
|
|
206C
|
|
206D
|
|
206E
|
|
206F
|
|
2FF0-2FFF
|
|
3000
|
|
3002
|
|
D800-DFFF
|
|
E000-F8FF
|
|
FFF9
|
|
FFFA
|
|
FFFB
|
|
FFFC
|
|
FFFD
|
|
FFFE-FFFF
|
|
1FFFE-1FFFF
|
|
2FFFE-2FFFF
|
|
3FFFE-3FFFF
|
|
4FFFE-4FFFF
|
|
5FFFE-5FFFF
|
|
6FFFE-6FFFF
|
|
7FFFE-7FFFF
|
|
8FFFE-8FFFF
|
|
9FFFE-9FFFF
|
|
AFFFE-AFFFF
|
|
BFFFE-BFFFF
|
|
CFFFE-CFFFF
|
|
DFFFE-DFFFF
|
|
EFFFE-EFFFF
|
|
F0000-FFFFD
|
|
FFFFE-FFFFF
|
|
100000-10FFFD
|
|
10FFFE-10FFFF
|
|
----- End Prohibited Table -----
|
|
|
|
NOTE WELL: Software that follows this specification that will be used to
|
|
check names before they are put in authoritative name servers MUST add
|
|
all unassigned code pints to the list of characters that are prohibited.
|
|
See Section 6 for more details.
|
|
|
|
|
|
G. Unassigned Code Point List
|
|
|
|
----- Start Unassigned Table -----
|
|
0220-0221
|
|
0234-024F
|
|
02AE-02AF
|
|
02EF-02FF
|
|
034F-035F
|
|
0363-0373
|
|
0376-0379
|
|
037B-037D
|
|
037F-0383
|
|
038B
|
|
038D
|
|
03A2
|
|
03CF
|
|
03D8-03D9
|
|
03F4-03FF
|
|
0487
|
|
048A-048B
|
|
04C5-04C6
|
|
04C9-04CA
|
|
04CD-04CF
|
|
04F6-04F7
|
|
04FA-0530
|
|
0557-0558
|
|
0560
|
|
0588
|
|
058B-0590
|
|
05A2
|
|
05BA
|
|
05C5-05CF
|
|
05EB-05EF
|
|
05F5-060B
|
|
060D-061A
|
|
061C-061E
|
|
0620
|
|
063B-063F
|
|
0656-065F
|
|
066E-066F
|
|
06EE-06EF
|
|
06FF
|
|
070E
|
|
072D-072F
|
|
074B-077F
|
|
07B1-0900
|
|
0904
|
|
093A-093B
|
|
094E-094F
|
|
0955-0957
|
|
0971-0980
|
|
0984
|
|
098D-098E
|
|
0991-0992
|
|
09A9
|
|
09B1
|
|
09B3-09B5
|
|
09BA-09BB
|
|
09BD
|
|
09C5-09C6
|
|
09C9-09CA
|
|
09CE-09D6
|
|
09D8-09DB
|
|
09DE
|
|
09E4-09E5
|
|
09FB-0A01
|
|
0A03-0A04
|
|
0A0B-0A0E
|
|
0A11-0A12
|
|
0A29
|
|
0A31
|
|
0A34
|
|
0A37
|
|
0A3A-0A3B
|
|
0A3D
|
|
0A43-0A46
|
|
0A49-0A4A
|
|
0A4E-0A58
|
|
0A5D
|
|
0A5F-0A65
|
|
0A75-0A80
|
|
0A84
|
|
0A8C
|
|
0A8E
|
|
0A92
|
|
0AA9
|
|
0AB1
|
|
0AB4
|
|
0ABA-0ABB
|
|
0AC6
|
|
0ACA
|
|
0ACE-0ACF
|
|
0AD1-0ADF
|
|
0AE1-0AE5
|
|
0AF0-0B00
|
|
0B04
|
|
0B0D-0B0E
|
|
0B11-0B12
|
|
0B29
|
|
0B31
|
|
0B34-0B35
|
|
0B3A-0B3B
|
|
0B44-0B46
|
|
0B49-0B4A
|
|
0B4E-0B55
|
|
0B58-0B5B
|
|
0B5E
|
|
0B62-0B65
|
|
0B71-0B81
|
|
0B84
|
|
0B8B-0B8D
|
|
0B91
|
|
0B96-0B98
|
|
0B9B
|
|
0B9D
|
|
0BA0-0BA2
|
|
0BA5-0BA7
|
|
0BAB-0BAD
|
|
0BB6
|
|
0BBA-0BBD
|
|
0BC3-0BC5
|
|
0BC9
|
|
0BCE-0BD6
|
|
0BD8-0BE6
|
|
0BF3-0C00
|
|
0C04
|
|
0C0D
|
|
0C11
|
|
0C29
|
|
0C34
|
|
0C3A-0C3D
|
|
0C45
|
|
0C49
|
|
0C4E-0C54
|
|
0C57-0C5F
|
|
0C62-0C65
|
|
0C70-0C81
|
|
0C84
|
|
0C8D
|
|
0C91
|
|
0CA9
|
|
0CB4
|
|
0CBA-0CBD
|
|
0CC5
|
|
0CC9
|
|
0CCE-0CD4
|
|
0CD7-0CDD
|
|
0CDF
|
|
0CE2-0CE5
|
|
0CF0-0D01
|
|
0D04
|
|
0D0D
|
|
0D11
|
|
0D29
|
|
0D3A-0D3D
|
|
0D44-0D45
|
|
0D49
|
|
0D4E-0D56
|
|
0D58-0D5F
|
|
0D62-0D65
|
|
0D70-0D81
|
|
0D84
|
|
0D97-0D99
|
|
0DB2
|
|
0DBC
|
|
0DBE-0DBF
|
|
0DC7-0DC9
|
|
0DCB-0DCE
|
|
0DD5
|
|
0DD7
|
|
0DE0-0DF1
|
|
0DF5-0E00
|
|
0E3B-0E3E
|
|
0E5C-0E80
|
|
0E83
|
|
0E85-0E86
|
|
0E89
|
|
0E8B-0E8C
|
|
0E8E-0E93
|
|
0E98
|
|
0EA0
|
|
0EA4
|
|
0EA6
|
|
0EA8-0EA9
|
|
0EAC
|
|
0EBA
|
|
0EBE-0EBF
|
|
0EC5
|
|
0EC7
|
|
0ECE-0ECF
|
|
0EDA-0EDB
|
|
0EDE-0EFF
|
|
0F48
|
|
0F6B-0F70
|
|
0F8C-0F8F
|
|
0F98
|
|
0FBD
|
|
0FCD-0FCE
|
|
0FD0-0FFF
|
|
1022
|
|
1028
|
|
102B
|
|
1033-1035
|
|
103A-103F
|
|
105A-109F
|
|
10C6-10CF
|
|
10F7-10FA
|
|
10FC-10FF
|
|
115A-115E
|
|
11A3-11A7
|
|
11FA-11FF
|
|
1207
|
|
1247
|
|
1249
|
|
124E-124F
|
|
1257
|
|
1259
|
|
125E-125F
|
|
1287
|
|
1289
|
|
128E-128F
|
|
12AF
|
|
12B1
|
|
12B6-12B7
|
|
12BF
|
|
12C1
|
|
12C6-12C7
|
|
12CF
|
|
12D7
|
|
12EF
|
|
130F
|
|
1311
|
|
1316-1317
|
|
131F
|
|
1347
|
|
135B-1360
|
|
137D-139F
|
|
13F5-1400
|
|
1677-167F
|
|
169D-169F
|
|
16F1-177F
|
|
17DD-17DF
|
|
17EA-17FF
|
|
180F
|
|
181A-181F
|
|
1878-187F
|
|
18AA-1DFF
|
|
1E9C-1E9F
|
|
1EFA-1EFF
|
|
1F16-1F17
|
|
1F1E-1F1F
|
|
1F46-1F47
|
|
1F4E-1F4F
|
|
1F58
|
|
1F5A
|
|
1F5C
|
|
1F5E
|
|
1F7E-1F7F
|
|
1FB5
|
|
1FC5
|
|
1FD4-1FD5
|
|
1FDC
|
|
1FF0-1FF1
|
|
1FF5
|
|
1FFF
|
|
2047
|
|
204E-2069
|
|
2071-2073
|
|
208F-209F
|
|
20B0-20CF
|
|
20E4-20FF
|
|
213B-2152
|
|
2184-218F
|
|
21F4-21FF
|
|
22F2-22FF
|
|
237C
|
|
239B-23FF
|
|
2427-243F
|
|
244B-245F
|
|
24EB-24FF
|
|
2596-259F
|
|
25F8-25FF
|
|
2614-2618
|
|
2672-2700
|
|
2705
|
|
270A-270B
|
|
2728
|
|
274C
|
|
274E
|
|
2753-2755
|
|
2757
|
|
275F-2760
|
|
2768-2775
|
|
2795-2797
|
|
27B0
|
|
27BF-27FF
|
|
2900-2E7F
|
|
2E9A
|
|
2EF4-2EFF
|
|
2FD6-2FEF
|
|
2FFC-2FFF
|
|
303B-303D
|
|
3040
|
|
3095-3098
|
|
309F-30A0
|
|
30FF-3104
|
|
312D-3130
|
|
318F
|
|
31B8-31FF
|
|
321D-321F
|
|
3244-325F
|
|
327C-327E
|
|
32B1-32BF
|
|
32CC-32CF
|
|
32FF
|
|
3377-337A
|
|
33DE-33DF
|
|
33FF
|
|
4DB6-4DFF
|
|
9FA6-9FFF
|
|
A48D-A48F
|
|
A4A2-A4A3
|
|
A4B4
|
|
A4C1
|
|
A4C5
|
|
A4C7-ABFF
|
|
D7A4-D7FF
|
|
FA2E-FAFF
|
|
FB07-FB12
|
|
FB18-FB1C
|
|
FB37
|
|
FB3D
|
|
FB3F
|
|
FB42
|
|
FB45
|
|
FBB2-FBD2
|
|
FD40-FD4F
|
|
FD90-FD91
|
|
FDC8-FDEF
|
|
FDFC-FE1F
|
|
FE24-FE2F
|
|
FE45-FE48
|
|
FE53
|
|
FE67
|
|
FE6C-FE6F
|
|
FE73
|
|
FE75
|
|
FEFD-FEFE
|
|
FF00
|
|
FF5F-FF60
|
|
FFBF-FFC1
|
|
FFC8-FFC9
|
|
FFD0-FFD1
|
|
FFD8-FFD9
|
|
FFDD-FFDF
|
|
FFE7
|
|
FFEF-FFF8
|
|
10000-1FFFD
|
|
20000-2FFFD
|
|
30000-3FFFD
|
|
40000-4FFFD
|
|
50000-5FFFD
|
|
60000-6FFFD
|
|
70000-7FFFD
|
|
80000-8FFFD
|
|
90000-9FFFD
|
|
A0000-AFFFD
|
|
B0000-BFFFD
|
|
C0000-CFFFD
|
|
D0000-DFFFD
|
|
E0000-EFFFD
|
|
----- End Unassigned Table -----
|
|
|