Internet Engineering Task Force (IETF)                        P. Hoffman
Request for Comments: 6365                                VPN Consortium
BCP: 166                                                      J. Klensin
Obsoletes: 3536                                           September 2011
Category: Best Current Practice
ISSN: 2070-1721
Internet Engineering Task Force (IETF)                        P. Hoffman
Request for Comments: 6365                                VPN Consortium
BCP: 166                                                      J. Klensin
Obsoletes: 3536                                           September 2011
Category: Best Current Practice
ISSN: 2070-1721

Terminology Used in Internationalization in the IETF




This document provides a list of terms used in the IETF when discussing internationalization. The purpose is to help frame discussions of internationalization in the various areas of the IETF and to help introduce the main concepts to IETF participants.


Status of This Memo


This memo documents an Internet Best Current Practice.


This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on BCPs is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关BCP的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at


Copyright Notice


Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2011 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents ( in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents


   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Purpose of this Document . . . . . . . . . . . . . . . . .  3
     1.2.  Format of the Definitions in This Document . . . . . . . .  4
     1.3.  Normative Terminology  . . . . . . . . . . . . . . . . . .  4
   2.  Fundamental Terms  . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Standards Bodies and Standards . . . . . . . . . . . . . . . . 10
     3.1.  Standards Bodies . . . . . . . . . . . . . . . . . . . . . 11
     3.2.  Encodings and Transformation Formats of ISO/IEC 10646  . . 13
     3.3.  Native CCSs and Charsets . . . . . . . . . . . . . . . . . 15
   4.  Character Issues . . . . . . . . . . . . . . . . . . . . . . . 16
     4.1.  Types of Characters  . . . . . . . . . . . . . . . . . . . 20
     4.2.  Differentiation of Subsets . . . . . . . . . . . . . . . . 23
   5.  User Interface for Text  . . . . . . . . . . . . . . . . . . . 24
   6.  Text in Current IETF Protocols . . . . . . . . . . . . . . . . 27
   7.  Terms Associated with Internationalized Domain Names . . . . . 31
     7.1.  IDNA Terminology . . . . . . . . . . . . . . . . . . . . . 31
     7.2.  Character Relationships and Variants . . . . . . . . . . . 32
   8.  Other Common Terms in Internationalization . . . . . . . . . . 33
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 36
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 37
     10.2. Informative References . . . . . . . . . . . . . . . . . . 37
   Appendix A.  Additional Interesting Reading  . . . . . . . . . . . 41
   Appendix B.  Acknowledgements  . . . . . . . . . . . . . . . . . . 42
   Appendix C.  Significant Changes from RFC 3536 . . . . . . . . . . 42
   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Purpose of this Document . . . . . . . . . . . . . . . . .  3
     1.2.  Format of the Definitions in This Document . . . . . . . .  4
     1.3.  Normative Terminology  . . . . . . . . . . . . . . . . . .  4
   2.  Fundamental Terms  . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Standards Bodies and Standards . . . . . . . . . . . . . . . . 10
     3.1.  Standards Bodies . . . . . . . . . . . . . . . . . . . . . 11
     3.2.  Encodings and Transformation Formats of ISO/IEC 10646  . . 13
     3.3.  Native CCSs and Charsets . . . . . . . . . . . . . . . . . 15
   4.  Character Issues . . . . . . . . . . . . . . . . . . . . . . . 16
     4.1.  Types of Characters  . . . . . . . . . . . . . . . . . . . 20
     4.2.  Differentiation of Subsets . . . . . . . . . . . . . . . . 23
   5.  User Interface for Text  . . . . . . . . . . . . . . . . . . . 24
   6.  Text in Current IETF Protocols . . . . . . . . . . . . . . . . 27
   7.  Terms Associated with Internationalized Domain Names . . . . . 31
     7.1.  IDNA Terminology . . . . . . . . . . . . . . . . . . . . . 31
     7.2.  Character Relationships and Variants . . . . . . . . . . . 32
   8.  Other Common Terms in Internationalization . . . . . . . . . . 33
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 36
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 37
     10.2. Informative References . . . . . . . . . . . . . . . . . . 37
   Appendix A.  Additional Interesting Reading  . . . . . . . . . . . 41
   Appendix B.  Acknowledgements  . . . . . . . . . . . . . . . . . . 42
   Appendix C.  Significant Changes from RFC 3536 . . . . . . . . . . 42
   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1. Introduction
1. 介绍

As the IETF Character Set Policy specification [RFC2277] summarizes: "Internationalization is for humans. This means that protocols are not subject to internationalization; text strings are." Many protocols throughout the IETF use text strings that are entered by, or are visible to, humans. Subject only to the limitations of their own knowledge and facilities, it should be possible for anyone to enter or read these text strings, which means that Internet users must be able to enter text using typical input methods and have it be displayed in any human language. Further, text containing any character should be able to be passed between Internet applications easily. This is the challenge of internationalization.


1.1. Purpose of this Document
1.1. 本文件的目的

This document provides a glossary of terms used in the IETF when discussing internationalization. The purpose is to help frame discussions of internationalization in the various areas of the IETF and to help introduce the main concepts to IETF participants.


Internationalization is discussed in many working groups of the IETF. However, few working groups have internationalization experts. When designing or updating protocols, the question often comes up "Should we internationalize this?" (or, more likely, "Do we have to internationalize this?").


This document gives an overview of internationalization terminology as it applies to IETF standards work by lightly covering the many aspects of internationalization and the vocabulary associated with those topics. Some of the overview is somewhat tutorial in nature. It is not meant to be a complete description of internationalization. The definitions here SHOULD be used by IETF standards. IETF standards that explicitly want to create different definitions for the terms defined here can do so, but unless an alternate definition is provided the definitions of the terms in this document apply. IETF standards that have a requirement for different definitions are encouraged, for clarity's sake, to find terms different than the ones defined here. Some of the definitions in this document come from earlier IETF documents and books.


As in many fields, there is disagreement in the internationalization community on definitions for many words. The topic of language brings up particularly passionate opinions for experts and non-experts alike. This document attempts to define terms in a way that will be most useful to the IETF audience.


This document uses definitions from many documents that have been developed inside and outside the IETF. The primary documents used are:


o ISO/IEC 10646 [ISOIEC10646]

o ISO/IEC10646[ISO10646]

o The Unicode Standard [UNICODE]

o Unicode标准[Unicode]

o W3C Character Model [CHARMOD]

o W3C字符模型[CHARMOD]

o IETF RFCs, including the Character Set Policy specification [RFC2277] and the domain name internationalization standard [RFC5890]

o IETF RFCs,包括字符集策略规范[RFC2277]和域名国际化标准[RFC5890]

1.2. Format of the Definitions in This Document
1.2. 本文件中定义的格式

In the body of this document, the source for the definition is shown in angle brackets, such as "<ISOIEC10646>". Many definitions are shown as "<RFC6365>", which means that the definitions were crafted originally for this document. The angle bracket notation for the source of definitions is different than the square bracket notation used for references to documents, such as in the paragraph above; these references are given in the reference sections of this document.


For some terms, there are commentary and examples after the definitions. In those cases, the part before the angle brackets is the definition that comes from the original source, and the part after the angle brackets is commentary that is not a definition (such as an example or further exposition).


Examples in this document use the notation for code points and names from the Unicode Standard [UNICODE] and ISO/IEC 10646 [ISOIEC10646]. For example, the letter "a" may be represented as either "U+0061" or "LATIN SMALL LETTER A". See RFC 5137 [RFC5137] for a description of this notation.

本文档中的示例使用Unicode标准[Unicode]和ISO/IEC 10646[ISOIEC10646]中的代码点和名称表示法。例如,字母“a”可以表示为“U+0061”或“拉丁小写字母a”。有关此符号的说明,请参见RFC 5137[RFC5137]。

1.3. Normative Terminology
1.3. 规范术语

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

2. Fundamental Terms
2. 基本术语

This section covers basic topics that are needed for almost anyone who is involved with making IETF protocols more friendly to non-ASCII text (see Section 4.2) and with other aspects of internationalization.




A language is a way that humans communicate. The use of language occurs in many forms, the most common of which are speech, writing, and signing. <RFC6365>


Some languages have a close relationship between the written and spoken forms, while others have a looser relationship. The so-called LTRU (Language Tag Registry Update) standards [RFC5646] [RFC4647] discuss languages in more detail and provide identifiers for languages for use in Internet protocols. Note that computer languages are explicitly excluded from this definition.




A set of graphic characters used for the written form of one or more languages. <ISOIEC10646>


Examples of scripts are Latin, Cyrillic, Greek, Arabic, and Han (the characters, often called ideographs after a subset of them, used in writing Chinese, Japanese, and Korean). RFC 2277 discusses scripts in detail.


It is common for internationalization novices to mix up the terms "language" and "script". This can be a problem in protocols that differentiate the two. Almost all protocols that are designed (or were re-designed) to handle non-ASCII text deal with scripts (the written systems) or characters, while fewer actually deal with languages.


A single name can mean either a language or a script; for example, "Arabic" is both the name of a language and the name of a script. In fact, many scripts borrow their names from the names of languages. Further, many scripts are used to write more than one language; for example, the Russian and Bulgarian languages are written in the Cyrillic script. Some languages can be expressed using different scripts or were used with different scripts at different times; the Mongolian language can be written in either the Mongolian or Cyrillic scripts; Malay is primarily written in Latin script today, but the earlier, Arabic-script-based, Jawa form is still in use; and a number of languages were converted


from other scripts to Cyrillic in the first half of the last century, some of which have switched again more recently. Further, some languages are normally expressed with more than one script at the same time; for example, the Japanese language is normally expressed in the Kanji (Han), Katakana, and Hiragana scripts in a single string of text.


writing system


A set of rules for using one or more scripts to write a particular language. Examples include the American English writing system, the British English writing system, the French writing system, and the Japanese writing system. <UNICODE>




A member of a set of elements used for the organization, control, or representation of data. <ISOIEC10646>


There are at least three common definitions of the word "character":


* a general description of a text entity

* 文本实体的一般描述

* a unit of a writing system, often synonymous with "letter" or similar terms, but generalized to include digits and symbols of various sorts

* 书写系统的一种单位,通常与“字母”或类似术语同义,但一般包括各种数字和符号

* the encoded entity itself

* 编码实体本身

When people talk about characters, they usually intend one of the first two definitions. The term "character" is often abbreviated as "char".


A particular character is identified by its name, not by its shape. A name may suggest a meaning, but the character may be used for representing other meanings as well. A name may suggest a shape, but that does not imply that only that shape is commonly used in print, nor that the particular shape is associated only with that name.


coded character


A character together with its coded representation. <ISOIEC10646>


coded character set


A coded character set (CCS) is a set of unambiguous rules that establishes a character set and the relationship between the characters of the set and their coded representation. <ISOIEC10646>


character encoding form


A character encoding form is a mapping from a coded character set (CCS) to the actual code units used to represent the data. <UNICODE>




The collection of characters included in a character set. Also called a character repertoire. <UNICODE>




A glyph is an image of a character that can be displayed after being imaged onto a display surface. <RFC6365>


The Unicode Standard has a different definition that refers to an abstract form that may represent different images when the same character is rendered under different circumstances.


glyph code


A glyph code is a numeric code that refers to a glyph. Usually, the glyphs contained in a font are referenced by their glyph code. Glyph codes are local to a particular font; that is, a different font containing the same glyphs may use different codes. <UNICODE>




Transcoding is the process of converting text data from one character encoding form to another. Transcoders work only at the level of character encoding and do not parse the text. Note: Transcoding may involve one-to-one, many-to-one, one-to-many, or many-to-many mappings. Because some legacy mappings are glyphic, they may not only be many-to-many, but also unordered: thus XYZ may map to yxz. <CHARMOD>


In this definition, "many-to-one" means a sequence of characters mapped to a single character. The "many" does not mean alternative characters that map to the single character.


character encoding scheme


A character encoding scheme (CES) is a character encoding form plus byte serialization. There are many character encoding schemes in Unicode, such as UTF-8 and UTF-16BE. <UNICODE>


Some CESs are associated with a single CCS; for example, UTF-8 [RFC3629] applies only to the identical CCSs of ISO/IEC 10646 and Unicode. Other CESs, such as ISO 2022, are associated with many CCSs.

一些CES与单个CCS相关;例如,UTF-8[RFC3629]仅适用于ISO/IEC 10646和Unicode的相同CCS。其他CES,如ISO 2022,与许多CCS相关。



A charset is a method of mapping a sequence of octets to a sequence of abstract characters. A charset is, in effect, a combination of one or more CCSs with a CES. Charset names are registered by the IANA according to procedures documented in [RFC2978]. <RFC6365>


Many protocol definitions use the term "character set" in their descriptions. The terms "charset", or "character encoding scheme" and "coded character set", are strongly preferred over the term "character set" because "character set" has other definitions in other contexts, particularly outside the IETF. When reading IETF standards that use "character set" without defining the term, they usually mean "a specific combination of one CCS with a CES", particularly when they are talking about the "US-ASCII character set".




In the IETF, "internationalization" means to add or improve the handling of non-ASCII text in a protocol. <RFC6365> A different perspective, more appropriate to protocols that are designed for global use from the beginning, is the definition used by W3C:


"Internationalization is the design and development of a product, application or document content that enables easy localization for target audiences that vary in culture, region, or language." [W3C-i18n-Def]


Many protocols that handle text only handle one charset (US-ASCII), or leave the question of what CCS and encoding are used up to local guesswork (which leads, of course, to interoperability problems). If multiple charsets are permitted, they must be explicitly identified [RFC2277]. Adding non-ASCII text to a protocol allows the protocol to handle more scripts, hopefully all of the ones useful in the world. In today's world,


that is normally best accomplished by allowing Unicode encoded in UTF-8 only, thereby shifting conversion issues away from individual choices.




The process of adapting an internationalized application platform or application to a specific cultural environment. In localization, the same semantics are preserved while the syntax may be changed. [FRAMEWORK]


Localization is the act of tailoring an application for a different language or script or culture. Some internationalized applications can handle a wide variety of languages. Typical users only understand a small number of languages, so the program must be tailored to interact with users in just the languages they know.


The major work of localization is translating the user interface and documentation. Localization involves not only changing the language interaction, but also other relevant changes such as display of numbers, dates, currency, and so on. The better internationalized an application is, the easier it is to localize it for a particular language and character encoding scheme.


Localization is rarely an IETF matter, and protocols that are merely localized, even if they are serially localized for several locations, are generally considered unsatisfactory for the global Internet.


Do not confuse "localization" with "locale", which is described in Section 8 of this document.


i18n, l10n


These are abbreviations for "internationalization" and "localization". <RFC6365>


"18" is the number of characters between the "i" and the "n" in "internationalization", and "10" is the number of characters between the "l" and the "n" in "localization".




The term "multilingual" has many widely varying definitions and thus is not recommended for use in standards. Some of the definitions relate to the ability to handle international characters; other definitions relate to the ability to handle multiple charsets; and still others relate to the ability to handle multiple languages. <RFC6365>


displaying and rendering text


To display text, a system puts characters on a visual display device such as a screen or a printer. To render text, a system analyzes the character input to determine how to display the text. The terms "display" and "render" are sometimes used interchangeably. Note, however, that text might be rendered as audio and/or tactile output, such as in systems that have been designed for people with visual disabilities. <RFC6365>


Combining characters modify the display of the character (or, in some cases, characters) that precede them. When rendering such text, the display engine must either find the glyph in the font that represents the base character and all of the combining characters, or it must render the combination itself. Such rendering can be straightforward, but it is sometimes complicated when the combining marks interact with each other, such as when there are two combining marks that would appear above the same character. Formatting characters can also change the way that a renderer would display text. Rendering can also be difficult for some scripts that have complex display rules for base characters, such as Arabic and Indic scripts.


3. Standards Bodies and Standards
3. 标准机构和标准

This section describes some of the standards bodies and standards that appear in discussions of internationalization in the IETF. This is an incomplete and possibly over-full list; listing too few bodies or standards can be just as politically dangerous as listing too many. Note that there are many other bodies that deal with internationalization; however, few if any of them appear commonly in IETF standards work.


3.1. Standards Bodies
3.1. 标准机构



The International Organization for Standardization has been involved with standards for characters since before the IETF was started. ISO is a non-governmental group made up of national bodies. Most of ISO's work in information technology is performed jointly with a similar body, the International Electrotechnical Commission (IEC) through a joint committee known as "JTC 1". ISO and ISO/IEC JTC 1 have many diverse standards in the international characters area; the one that is most used in the IETF is commonly referred to as "ISO/IEC 10646", sometimes with a specific date. ISO/IEC 10646 describes a CCS that covers almost all known written characters in use today.

在IETF启动之前,国际标准化组织就参与了字符标准的制定。ISO是由国家机构组成的非政府组织。国际标准化组织在信息技术方面的大部分工作是通过一个名为“JTC 1”的联合委员会与一个类似机构国际电工委员会(IEC)联合开展的。ISO和ISO/IEC JTC 1在国际字符领域有许多不同的标准;IETF中使用最多的一个通常被称为“ISO/IEC 10646”,有时带有特定日期。ISO/IEC 10646描述了一种CCS,它涵盖了目前使用的几乎所有已知的书写字符。

      ISO/IEC 10646 is controlled by the group known as "ISO/IEC JTC 1/
      SC 2 WG2", often called "SC2/WG2" or "WG2" for short.  ISO
      standards go through many steps before being finished, and years
      often go by between changes to the base ISO/IEC 10646 standard
      although amendments are now issued to track Unicode changes.
      Information on WG2, and its work products, can be found at
      <>.  Information on SC2, and its
      work products, can be found at <
      ISO/IEC 10646 is controlled by the group known as "ISO/IEC JTC 1/
      SC 2 WG2", often called "SC2/WG2" or "WG2" for short.  ISO
      standards go through many steps before being finished, and years
      often go by between changes to the base ISO/IEC 10646 standard
      although amendments are now issued to track Unicode changes.
      Information on WG2, and its work products, can be found at
      <>.  Information on SC2, and its
      work products, can be found at <

The standard comes as a base part and a series of attachments or amendments. It is available in PDF form for downloading or in a CD-ROM version. One example of how to cite the standard is given in [RFC3629]. Any standard that cites ISO/IEC 10646 needs to evaluate how to handle the versioning problem that is relevant to the protocol's needs.

本标准作为基础部分和一系列附件或修改件发布。该文件以PDF格式提供,可供下载或以CD-ROM格式提供。[RFC3629]中给出了如何引用该标准的一个示例。任何引用ISO/IEC 10646的标准都需要评估如何处理与协议需求相关的版本控制问题。

ISO is responsible for other standards that might be of interest to protocol developers concerned about internationalization. ISO 639 [ISO639] specifies the names of languages and forms part of the basis for the IETF's Language Tag work [RFC5646]. ISO 3166 [ISO3166] specifies the names and code abbreviations for countries and territories and is used in several protocols and databases including names for country-code top level domain names. The responsibilities of ISO TC 46 on Information and Documentation < technical_committees/list_of_iso_technical_committees/ iso_technical_committee.htm?commid=48750> include a series of standards for transliteration of various languages into Latin characters.

ISO负责关注国际化的协议开发人员可能感兴趣的其他标准。ISO 639[ISO639]规定了语言名称,并构成IETF语言标记工作[RFC5646]基础的一部分。ISO 3166[ISO3166]规定了国家和地区的名称和代码缩写,并用于多个协议和数据库,包括国家代码顶级域名的名称。ISO TC 46在信息和文件方面的责任< 技术委员会/iso技术委员会列表/iso技术委员会.htm?commid=48750>包括一系列将各种语言音译为拉丁字符的标准。

Another relevant ISO group was JTC 1/SC22/WG20, which was responsible for internationalization in JTC 1, such as for international string ordering. Information on WG20, and its work products, can be found at <>. The specific tasks of SC22/WG20 were moved from SC22 into SC2, and there has been little significant activity since that occurred.

另一个相关的ISO小组是JTC 1/SC22/WG20,负责JTC 1的国际化,例如国际字符串排序。有关WG20及其工作产品的信息,请访问<>. SC22/WG20的具体任务从SC22转移到了SC2,此后几乎没有什么重大活动。

Unicode Consortium


The second important group for international character standards is the Unicode Consortium. The Unicode Consortium is a trade association of companies, governments, and other groups interested in promoting the Unicode Standard [UNICODE]. The Unicode Standard is a CCS whose repertoire and code points are identical to ISO/IEC 10646. The Unicode Consortium has added features to the base CCS that make it more useful in protocols, such as defining attributes for each character. Examples of these attributes include case conversion and numeric properties.

国际字符标准的第二个重要团体是Unicode联盟。Unicode联盟是一个由公司、政府和其他对推广Unicode标准[Unicode]感兴趣的团体组成的行业协会。Unicode标准是一种CCS,其指令集和代码点与ISO/IEC 10646相同。Unicode联盟为基础CCS添加了一些功能,使其在协议中更加有用,例如为每个字符定义属性。这些属性的示例包括大小写转换和数字属性。

The actual technical and definitional work of the Unicode Consortium is done in the Unicode Technical Committee (UTC). The terms "UTC" and "Unicode Consortium" are often treated, imprecisely, as synonymous in the IETF.


The Unicode Consortium publishes addenda to the Unicode Standard as Unicode Technical Reports. There are many types of technical reports at various stages of maturity. The Unicode Standard and affiliated technical reports can be found at <>.


A reciprocal agreement between the Unicode Consortium and ISO/IEC JTC 1/SC 2 provides for ISO/IEC 10646 and The Unicode Standard to track each other for definitions of characters and assignments of code points. Updates, often in the form of amendments, to the former sometimes lag updates to the latter for a short period, but the gap has rarely been significant in recent years.

Unicode联盟和ISO/IEC JTC 1/SC 2之间的互惠协议规定ISO/IEC 10646和Unicode标准可相互跟踪字符定义和代码点分配。对前者的更新(通常以修正的形式)有时会在短时间内滞后于对后者的更新,但近年来差距很少显著。

At the time that the IETF character set policy [RFC2277] was established and the first version of this terminology specification was published, there was a strong preference in the IETF community for references to ISO/IEC 10646 (rather than Unicode) when possible. That preference largely reflected a more general IETF preference for referencing established open international standards over specifications from consortia. However, the Unicode definitions of character properties and classes are not part of ISO/IEC 10646. Because IETF specifications are increasingly dependent on those definitions

在制定IETF字符集策略[RFC2277]并发布本术语规范的第一个版本时,IETF社区强烈倾向于在可能的情况下参考ISO/IEC 10646(而非Unicode)。这种偏好在很大程度上反映了IETF更倾向于引用已建立的开放式国际标准,而不是来自联合体的规范。但是,字符属性和类的Unicode定义不是ISO/IEC 10646的一部分。因为IETF规范越来越依赖于这些定义

(for example, see the explanation in Section 4.2) and the Unicode specifications are freely available online in convenient machine-readable form, the IETF's preference has shifted to referencing the Unicode Standard. The latter is especially important when version consistency between code points (either standard) and Unicode properties (Unicode only) is required.


World Wide Web Consortium (W3C)


This group created and maintains the standard for XML, the markup language for text that has become very popular. XML has always been fully internationalized so that there is no need for a new version to handle international text. However, in some circumstances, XML files may be sensitive to differences among Unicode versions.


local and regional standards organizations


Just as there are many native CCSs and charsets, there are many local and regional standards organizations to create and support them. Common examples of these are ANSI (United States), CEN/ISSS (Europe), JIS (Japan), and SAC (China).


3.2. Encodings and Transformation Formats of ISO/IEC 10646
3.2. ISO/IEC 10646的编码和转换格式

Characters in the ISO/IEC 10646 CCS can be expressed in many ways. Historically, "encoding forms" are both direct addressing methods, while "transformation formats" are methods for expressing encoding forms as bits on the wire. That distinction has mostly disappeared in recent years.

ISO/IEC 10646 CCS中的字符可以用多种方式表示。历史上,“编码形式”都是直接寻址方法,而“转换格式”是将编码形式表示为线路上的位的方法。近年来,这种区别基本上消失了。

Documents that discuss characters in the ISO/IEC 10646 CCS often need to list specific characters. RFC 5137 describes the common methods for doing so in IETF documents, and these practices have been adopted by many other communities as well.

讨论ISO/IEC 10646 CCS中字符的文档通常需要列出特定字符。RFC 5137在IETF文件中描述了这样做的常用方法,这些实践也被许多其他社区采用。

Basic Multilingual Plane (BMP)


The BMP is composed of the first 2^16 code points in ISO/IEC 10646 and contains almost all characters in contemporary use. The BMP is also called "Plane 0".

BMP由ISO/IEC 10646中的前2^16个代码点组成,包含几乎所有当代使用的字符。BMP也称为“平面0”。

UCS-2 and UCS-4


UCS-2 and UCS-4 are the two encoding forms historically defined for ISO/IEC 10646. UCS-2 addresses only the BMP. Because many useful characters (such as many Han characters) have been defined outside of the BMP, many people consider UCS-2 to be obsolete.

UCS-2和UCS-4是历史上为ISO/IEC 10646定义的两种编码形式。UCS-2仅处理BMP。由于许多有用的字符(如许多汉字)已经定义在BMP之外,很多人认为UCS-2是过时的。

UCS-4 addresses the entire range of code points from ISO/IEC 10646 (by agreement between ISO/IEC JTC 1 SC2 and the Unicode Consortium, a range from 0..0x10FFFF) as 32-bit values with zero padding to the left. UCS-4 is identical to UTF-32BE (without use of a BOM (see below)); UTF-32BE is now the preferred term.

UCS-4将ISO/IEC 10646(根据ISO/IEC JTC 1 SC2和Unicode联盟之间的协议,范围为0..0x10FFFF)中的整个代码点范围作为32位值进行寻址,左侧为零填充。UCS-4与UTF-32BE相同(不使用BOM(见下文));UTF-32BE现在是首选术语。



UTF-8 [RFC3629] is the preferred encoding for IETF protocols. Characters in the BMP are encoded as one, two, or three octets. Characters outside the BMP are encoded as four octets. Characters from the US-ASCII repertoire have the same on-the-wire representation in UTF-8 as they do in US-ASCII. The IETF-specific definition of UTF-8 in RFC 3629 is identical to that in recent versions of the Unicode Standard (e.g., in Section 3.9 of Version 6.0 [UNICODE]).

UTF-8[RFC3629]是IETF协议的首选编码。BMP中的字符编码为一个、两个或三个八位字节。BMP之外的字符编码为四个八位字节。US-ASCII指令表中的字符在UTF-8中具有与在US-ASCII中相同的在线表示形式。RFC 3629中UTF-8的IETF特定定义与最新版本的Unicode标准(例如,版本6.0[Unicode]第3.9节)中的定义相同。

UTF-16, UTF-16BE, and UTF-16LE


UTF-16, UTF-16BE, and UTF-16LE, three transformation formats described in [RFC2781] and defined in The Unicode Standard (Sections 3.9 and 16.8 of Version 6.0), are not required by any IETF standards, and are thus used much less often in protocols than UTF-8. Characters in the BMP are always encoded as two octets, and characters outside the BMP are encoded as four octets using a "surrogate pair" arrangement. The latter is not part of UCS-2, marking the difference between UTF-16 and UCS-2. The three UTF-16 formats differ based on the order of the octets and the presence or absence of a special lead-in ordering identifier called the "byte order mark" or "BOM".




The Unicode Consortium and ISO/IEC JTC 1 have defined UTF-32 as a transformation format that incorporates the integer code point value right-justified in a 32-bit field. As with UTF-16, the byte order mark (BOM) can be used and UTF-32BE and UTF-32LE are defined. UTF-32 and UCS-4 are essentially equivalent and the terms are often used interchangeably.

Unicode联盟和ISO/IEC JTC 1已将UTF-32定义为一种转换格式,该格式将整数码点值在32位字段中右对齐。与UTF-16一样,可以使用字节顺序标记(BOM),并定义UTF-32BE和UTF-32LE。UTF-32和UCS-4在本质上是等效的,两个术语经常互换使用。



The Unicode Consortium has defined an encoding, SCSU [UTR6], which is designed to offer good compression for typical text. A different encoding that is meant to be MIME-friendly, BOCU-1, is described in [UTN6]. Although compression is attractive, as opposed to UTF-8, neither of these (at the time of this writing) has attracted much interest.


The compression provided as a side effect of the Punycode algorithm [RFC3492] is heavily used in some contexts, especially IDNA [RFC5890], but imposes some restrictions. (See also Section 7.)


3.3. Native CCSs and Charsets
3.3. 本机ccs和字符集

Before ISO/IEC 10646 was developed, many countries developed their own CCSs and charsets. Some of these were adopted into international standards for the relevant scripts or writing systems. Many dozen of these are in common use on the Internet today. Examples include ISO 8859-5 for Cyrillic and Shift-JIS for Japanese scripts.

在ISO/IEC 10646开发之前,许多国家都开发了自己的CCS和字符集。其中一些已被纳入相关脚本或书写系统的国际标准。其中有几十种在今天的互联网上被广泛使用。例如,西里尔文的ISO 8859-5和日文的Shift JIS。

The official list of the registered charset names for use with IETF protocols is maintained by IANA and can be found at <>. The list contains preferred names and aliases. Note that this list has historically contained many errors, such as names that are in fact not charsets or references that do not give enough detail to reliably map names to charsets.

IETF协议使用的注册字符集名称的官方列表由IANA维护,可在<>. 该列表包含首选名称和别名。请注意,此列表历史上曾包含许多错误,例如实际上不是字符集的名称,或者没有提供足够详细信息以可靠地将名称映射到字符集的引用。

Probably the most well-known native CCS is ASCII [US-ASCII]. This CCS is used as the basis for keywords and parameter names in many IETF protocols, and as the sole CCS in numerous IETF protocols that have not yet been internationalized. ASCII became the basis for ISO/IEC 646 which, in turn, formed the basis for many national and international standards, such as the ISO 8859 series, that mix Basic Latin characters with characters from another script.

最著名的本地CCS可能是ASCII[US-ASCII]。该CCS在许多IETF协议中用作关键字和参数名称的基础,并在许多尚未国际化的IETF协议中用作唯一的CCS。ASCII成为ISO/IEC 646的基础,而ISO/IEC 646又形成了许多国家和国际标准的基础,如ISO 8859系列,这些标准将基本拉丁字符与另一个脚本中的字符混合在一起。

It is important to note that, strictly speaking, "ASCII" is a CCS and repertoire, not an encoding. The encoding used for ASCII in IETF protocols involves the 7-bit integer ASCII code point right-justified in an 8-bit field and is sometimes described as the "Network Virtual Terminal" or "NVT" encoding [RFC5198]. Less formally, "ASCII" and "NVT" are often used interchangeably. However, "non-ASCII" refers only to characters outside the ASCII repertoire and is not linked to a specific encoding. See Section 4.2.


A Unicode publication describes issues involved in mapping character data between charsets, and an XML format for mapping table data [UTR22].


4. Character Issues
4. 性格问题

This section contains terms and topics that are commonly used in character handling and therefore are of concern to people adding non-ASCII text handling to protocols. These topics are standardized outside the IETF.


code point


A value in the codespace of a repertoire. For all common repertoires developed in recent years, code point values are integers (code points for ASCII and its immediate descendants were defined in terms of column and row positions of a table).


combining character


A member of an identified subset of the coded character set of ISO/IEC 10646 intended for combination with the preceding non-combining graphic character, or with a sequence of combining characters preceded by a non-combining character. Combining characters are inherently non-spacing. <ISOIEC10646>

ISO/IEC 10646编码字符集的识别子集的一个成员,用于与前面的非组合图形字符组合,或与前面有非组合字符的组合字符序列组合。组合字符本质上是无间距的<ISO10646>

composite sequence or combining character sequence


A sequence of graphic characters consisting of a non-combining character followed by one or more combining characters. A graphic symbol for a composite sequence generally consists of the combination of the graphic symbols of each character in the sequence. The Unicode Standard often uses the term "combining character sequence" to refer to composite sequences. A composite sequence is not a character and therefore is not a member of the repertoire of ISO/IEC 10646. <ISOIEC10646> However, Unicode now assigns names to some such sequences especially when the names are required to match terminology in other standards [UAX34].

一种图形字符序列,由一个非组合字符后跟一个或多个组合字符组成。复合序列的图形符号通常由序列中每个字符的图形符号组合而成。Unicode标准通常使用术语“组合字符序列”来表示复合序列。复合序列不是字符,因此不是ISO/IEC 10646指令集的成员<ISOIEC10646>然而,Unicode现在为一些这样的序列分配名称,特别是当名称需要与其他标准中的术语相匹配时[UAX34]。

In some CCSs, some characters consist of combinations of other characters. For example, the letter "a with acute" might be a combination of the two characters "a" and "combining acute", or it might be a combination of the three characters "a", a non-destructive backspace, and an acute. In the same or other CCSs, it might be available as a single code point. The rules for combining two or more characters are called "composition rules", and the rules for taking apart a character into other characters are called "decomposition rules". The result of decomposition is called a "decomposed character"; the result of composition is usually a "precomposed character".

在某些CCS中,某些字符由其他字符的组合组成。例如,字母“a with acute”可能是两个字符“a”和“combining acute”的组合,也可能是三个字符“a”、非破坏性退格和acute的组合。在相同或其他CCS中,它可能作为单个代码点可用。组合两个或多个字符的规则称为“组合规则”,将一个字符拆分为其他字符的规则称为“分解规则”。分解的结果称为“分解字符”;合成的结果通常是“预合成字符”。



Normalization is the transformation of data to a normal form, for example, to unify spelling. <UNICODE>


Note that the phrase "unify spelling" in the definition above does not mean unifying different strings with the same meaning as words (such as "color" and "colour"). Instead, it means unifying different character sequences that are intended to form the same composite characters, such as "<n><combining tilde>" and "<n with tilde>" (where "<n>" is U+006E, "<combining tilde>" is U+0303, and "<n with tilde>" is U+00F1).

请注意,上述定义中的短语“统一拼写”并不意味着统一具有与单词相同含义的不同字符串(如“颜色”和“颜色”)。相反,它意味着统一旨在形成相同组合字符的不同字符序列,例如“<n><combing tilde>”和“<n with tilde>”(其中“<n>”是U+006E,<combing tilde>”是U+0303,“<n with tilde>”是U+00F1)。

The purpose of normalization is to allow two strings to be compared for equivalence. The strings "<a><n><combining tilde><o>" and "<a><n with tilde><o>" would be shown identically on a text display device. If a protocol designer wants those two strings to be considered equivalent during comparison, the protocol must define where normalization occurs.

规范化的目的是允许对两个字符串进行等效性比较。字符串“<a><n><combined tilde><o>”和“<a><n with tilde><o>”将在文本显示设备上以相同方式显示。如果协议设计者希望在比较期间将这两个字符串视为等效的,则协议必须定义规范化发生的位置。

The terms "normalization" and "canonicalization" are often used interchangeably. Generally, they both mean to convert a string of one or more characters into another string based on standardized rules. However, in Unicode, "canonicalization" or similar terms are used to refer to a particular type of normalization equivalence ("canonical equivalence" in contrast to "compatibility equivalence"), so the term should be used with some care. Some CCSs allow multiple equivalent representations for a written string; normalization selects one among multiple equivalent representations as a base for reference purposes in comparing strings. In strings of text, these rules are usually based on decomposing combined characters or composing characters with combining characters. Unicode Standard Annex #15 [UTR15] describes the process and many forms of normalization in detail. Normalization is important when comparing strings to see if they are the same.


The Unicode NFC and NFD normalizations support canonical equivalence; NFKC and NFKD support canonical and compatibility equivalence.

Unicode NFC和NFD规范化支持规范等价性;NFKC和NFKD支持规范和兼容性等价。



Case is the feature of certain alphabets where the letters have two (or occasionally more) distinct forms. These forms, which may differ markedly in shape and size, are called the uppercase letter (also known as capital or majuscule) and the lowercase letter (also known as small or minuscule). Case mapping is the association of the uppercase and lowercase forms of a letter. <UNICODE>


There is usually (but not always) a one-to-one mapping between the same letter in the two cases. However, there are many examples of characters that exist in one case but for which there is no corresponding character in the other case or for which there is a special mapping rule, such as the Turkish dotless "i", some Greek characters with modifiers, and characters like the German Sharp S (Eszett) and Greek Final Sigma that traditionally do not have uppercase forms. Case mapping can even be dependent on locale or language. Converting text to have only a single case, primarily for comparison purposes, is called "case folding". Because of the various unusual cases, case mapping can be quite controversial and some case folding algorithms even more so. For example, some programming languages such as Java have case-folding algorithms that are locale-sensitive; this makes those algorithms incredibly resource-intensive and makes them act differently depending on the location of the system at the time the algorithm is used.


sorting and collation


Collating is the process of ordering units of textual information. Collation is usually specific to a particular language or even to a particular application or locale. It is sometimes known as alphabetizing, although alphabetization is just a special case of sorting and collation. <UNICODE>


Collation is concerned with the determination of the relative order of any particular pair of strings, and algorithms concerned with collation focus on the problem of providing appropriate weighted keys for string values, to enable binary comparison of the key values to determine the relative ordering of the strings.


The relative orders of letters in collation sequences can differ widely based on the needs of the system or protocol defining the collation order. For example, even within ASCII characters, there are two common and very different collation orders: "A, a, B, b,..." and "A, B, C, ..., Z, a, b,...", with additional variations for lowercase first and digits before and after letters.


In practice, it is rarely necessary to define a collation sequence for characters drawn from different scripts, but arranging such sequences so as to not surprise users is usually particularly problematic.


Sorting is the process of actually putting data records into specified orders, according to criteria for comparison between the records. Sorting can apply to any kind of data (including textual data) for which an ordering criterion can be defined. Algorithms concerned with sorting focus on the problem of performance (in terms of time, memory, or other resources) in actually putting the data records into the desired order.


A sorting algorithm for string data can be internationalized by providing it with the appropriate collation-weighted keys corresponding to the strings to be ordered.


Many processes have a need to order strings in a consistent (sorted) sequence. For only a few CCS/CES combinations, there is an obvious sort order that can be applied without reference to the linguistic meaning of the characters: the code point order is sufficient for sorting. That is, the code point order is also the order that a person would use in sorting the characters. For many CCS/CES combinations, the code point order would make no sense to a person and therefore is not useful for sorting if the results will be displayed to a person.


Code point order is usually not how any human educated by a local school system expects to see strings ordered; if one orders to the expectations of a human, one has a "language-specific" or "human language" sort. Sorting to code point order will seem inconsistent if the strings are not normalized before sorting because different representations of the same character will sort differently. This problem may be smaller with a language-specific sort.


code table


A code table is a table showing the characters allocated to the octets in a code. <ISOIEC10646>


Code tables are also commonly called "code charts".


4.1. Types of Characters
4.1. 字符类型

The following definitions of types of characters do not clearly delineate each character into one type, nor do they allow someone to accurately predict what types would apply to a particular character. The definitions are intended for application designers to help them think about the many (sometimes confusing) properties of text.




An informative Unicode property. Characters that are the primary units of alphabets and/or syllabaries, whether combining or non-combining. This includes composite characters that are canonical equivalents to a combining character sequence of an alphabetic base character plus one or more combining characters: letter digraphs; contextual variants of alphabetic characters; ligatures of alphabetic characters; contextual variants of ligatures; modifier letters; letterlike symbols that are compatibility equivalents of single alphabetic letters; and miscellaneous letter elements. <UNICODE>




Any symbol that primarily denotes an idea (or meaning) in contrast to a sound (or pronunciation), for example, a symbol showing a telephone or the Han characters used in Chinese, Japanese, and Korean. <UNICODE>


While Unicode and many other systems use this term to refer to all Han characters, strictly speaking not all of those characters are actually ideographic. Some are pictographic (such as the telephone example above), some are used phonetically, and so on. However, the convention is to describe the script as ideographic as contrasted to alphabetic.


digit or number


All modern writing systems use decimal digits in some form; some older ones use non-positional or other systems. Different scripts may have their own digits. Unicode distinguishes between numbers and other kinds of characters by assigning a special General Category value to them and subdividing that value to distinguish between decimal digits, letter digits, and other digits. <UNICODE>




Characters that separate units of text, such as sentences and phrases, thus clarifying the meaning of the text. The use of punctuation marks is not limited to prose; they are also used in mathematical and scientific formulae, for example. <UNICODE>




One of a set of characters other than those used for letters, digits, or punctuation, and representing various concepts generally not connected to written language use per se. <RFC6365>


Examples of symbols include characters for mathematical operators, symbols for optical character recognition (OCR), symbols for box-drawing or graphics, as well as symbols for dingbats, arrows, faces, and geometric shapes. Unicode has a property that identifies symbol characters.


nonspacing character


A combining character whose positioning in presentation is dependent on its base character. It generally does not consume space along the visual baseline in and of itself. <UNICODE>


A combining acute accent (U+0301) is an example of a nonspacing character.




A mark applied or attached to a symbol to create a new symbol that represents a modified or new value. They can also be marks applied to a symbol irrespective of whether they change the value of that symbol. In the latter case, the diacritic usually represents an independent value (for example, an accent, tone, or some other linguistic information). Also called diacritical mark or diacritical. <UNICODE>


control character


      The 65 characters in the ranges U+0000..U+001F and U+007F..U+009F.
      The basic space character, U+0020, is often considered as a
      control character as well, making the total number 66.  They are
      also known as control codes.  In terminology adopted by Unicode
      from ASCII and the ISO 8859 standards, these codes are treated as
      belonging to three ranges: "C0" (for U+0000..U+001F), "C1" (for
      U+0080...U+009F), and the single control character "DEL" (U+007F).
      The 65 characters in the ranges U+0000..U+001F and U+007F..U+009F.
      The basic space character, U+0020, is often considered as a
      control character as well, making the total number 66.  They are
      also known as control codes.  In terminology adopted by Unicode
      from ASCII and the ISO 8859 standards, these codes are treated as
      belonging to three ranges: "C0" (for U+0000..U+001F), "C1" (for
      U+0080...U+009F), and the single control character "DEL" (U+007F).

Occasionally, in other vocabularies, the term "control character" is used to describe any character that does not normally have an associated glyph; it is also sometimes used for device control sequences [ISO6429]. Neither of those usages is appropriate to internationalization terminology in the IETF.


formatting character


Characters that are inherently invisible but that have an effect on the surrounding characters. <UNICODE>


Examples of formatting characters include characters for specifying the direction of text and characters that specify how to join multiple characters.


compatibility character or compatibility variant


A graphic character included as a coded character of ISO/IEC 10646 primarily for compatibility with existing coded character sets. <ISOIEC10646)>

作为ISO/IEC 10646编码字符包含的图形字符,主要用于与现有编码字符集兼容<ISO10646)>

The Unicode definition of compatibility charter also includes characters that have been incorporated for other reasons. Their list includes several separate groups of characters included for compatibility purposes: halfwidth and fullwidth characters used with East Asian scripts, Arabic contextual forms (e.g., initial or final forms), some ligatures, deprecated formatting characters, variant forms of characters (or even copies of them) for particular uses (e.g., phonetic or mathematical applications), font variations, CJK compatibility ideographs, and so on. For additional information and the separate term "compatibility decomposable character", see the Unicode standard.


For example, U+FF01 (FULLWIDTH EXCLAMATION MARK) was included for compatibility with Asian charsets that include full-width and half-width ASCII characters.


Some efforts in the IETF have concluded that it would be useful to support mapping of some groups of compatibility equivalents and not others (e.g., supporting or mapping width variations while preserving or rejecting mathematical variations). See the IDNA Mapping document [RFC5895] for one example.


4.2. Differentiation of Subsets
4.2. 子集的微分

Especially as existing IETF standards are internationalized, it is necessary to describe collections of characters including especially various subsets of Unicode. Because Unicode includes ways to code substantially all characters in contemporary use, subsets of the Unicode repertoire can be a useful tool for defining these collections as repertoires independent of specific Unicode coding.


However specific collections are defined, it is important to remember that, while older CCSs such as ASCII and the ISO 8859 family are close-ended and fixed, Unicode is open-ended, with new character definitions, and often new scripts, being added every year or so. So, while, e.g., an ASCII subset, such as "uppercase letters", can be specified as a range of code points (4/1 to 5/10 for that example), similar definitions for Unicode either have to be specified in terms of Unicode properties or are very dependent on Unicode versions (and the relevant version must be identified in any specification). See the IDNA code point specification [RFC5892] for an example of specification by combinations of properties.

尽管定义了特定的集合,但重要的是要记住,虽然旧的CCS(如ASCII和ISO 8859系列)是封闭式和固定式的,但Unicode是开放式的,每年左右都会添加新的字符定义,通常还会添加新的脚本。因此,例如,虽然ASCII子集(如“大写字母”)可以指定为一系列代码点(例如4/1到5/10),但Unicode的类似定义要么必须根据Unicode属性指定,要么非常依赖Unicode版本(任何规范中都必须标识相关版本)。请参阅IDNA代码点规范[RFC5892],以了解通过属性组合进行规范的示例。

Some terms are commonly used in the IETF to define character ranges and subsets. Some of these are imprecise and can cause confusion if not used carefully.




The term "non-ASCII" strictly refers to characters other than those that appear in the ASCII repertoire, independent of the CCS or encoding used for them. In practice, if a repertoire such as that of Unicode is established as context, "non-ASCII" refers to characters in that repertoire that do not appear in the ASCII repertoire. "Outside the ASCII repertoire" and "outside the ASCII range" are practical, and more precise, synonyms for "non-ASCII".




The term "letters" does not have an exact equivalent in the Unicode standard. Letters are generally characters that are used to write words, but that means very different things in different languages and cultures.


5. User Interface for Text
5. 文本用户界面

Although the IETF does not standardize user interfaces, many protocols make assumptions about how a user will enter or see text that is used in the protocol. Internationalization challenges assumptions about the type and limitations of the input and output devices that may be used with applications that use various protocols. It is therefore useful to consider how users typically interact with text that might contain one or more non-ASCII characters.


input methods


An input method is a mechanism for a person to enter text into an application. <RFC6365>


Text can be entered into a computer in many ways. Keyboards are by far the most common device used, but many characters cannot be entered on typical computer keyboards in a single stroke. Many operating systems come with system software that lets users input characters outside the range of what is allowed by keyboards.


For example, there are dozens of different input methods for Han characters in Chinese, Japanese, and Korean. Some start with phonetic input through the keyboard, while others use the number of strokes in the character. Input methods are also needed for scripts that have many diacritics, such as European or Vietnamese characters that have two or three diacritics on a single alphabetic character.


The term "input method editor" (IME) is often used generically to describe the tools and software used to deal with input of characters on a particular system.


rendering rules


A rendering rule is an algorithm that a system uses to decide how to display a string of text. <RFC6365>


Some scripts can be directly displayed with fonts, where each character from an input stream can simply be copied from a glyph system and put on the screen or printed page. Other scripts need rules that are based on the context of the characters in order to render text for display.


Some examples of these rendering rules include:


* Scripts such as Arabic (and many others), where the form of the letter changes depending on the adjacent letters, whether the letter is standing alone, at the beginning of a word, in the middle of a word, or at the end of a word. The rendering rules must choose between two or more glyphs.

* 诸如阿拉伯语(以及许多其他)的脚本,其中字母的形式取决于相邻字母,无论字母是独立的,在单词的开头,在单词的中间,或在单词的结尾。渲染规则必须在两个或多个图示符之间进行选择。

* Scripts such as the Indic scripts, where consonants may change their form if they are adjacent to certain other consonants or may be displayed in an order different from the way they are stored and pronounced. The rendering rules must choose between two or more glyphs.

* 例如印度语脚本,如果辅音与某些其他辅音相邻,则辅音可能改变其形式,或者可能以不同于其存储和发音方式的顺序显示。渲染规则必须在两个或多个图示符之间进行选择。

* Arabic and Hebrew scripts, where the order of the characters displayed are changed by the bidirectional properties of the alphabetic and other characters and with right-to-left and left-to-right ordering marks. The rendering rules must choose the order that characters are displayed.

* 阿拉伯文和希伯来文脚本,其中显示的字符顺序由字母和其他字符的双向属性更改,并带有从右到左和从左到右的顺序标记。渲染规则必须选择字符的显示顺序。

* Some writing systems cannot have their rendering rules suitably defined using mechanisms that are now defined in the Unicode Standard. None of those languages are in active non-scholarly use today.

* 某些书写系统无法使用Unicode标准中现在定义的机制适当地定义其呈现规则。今天,这些语言中没有一种在非学术领域被积极使用。

* Many systems use a special rendering rule when they lack a font or other mechanism for rendering a particular character correctly. That rule typically involves substitution of a small open box or a question mark for the missing character. See "undisplayable character" below.

* 许多系统在缺少正确渲染特定字符的字体或其他机制时使用特殊的渲染规则。该规则通常涉及用一个小的开口框或问号替换缺少的字符。请参阅下面的“无法显示的字符”。

graphic symbol


A graphic symbol is the visual representation of a graphic character or of a composite sequence. <ISOIEC10646>




A font is a collection of glyphs used for the visual depiction of character data. A font is often associated with a set of parameters (for example, size, posture, weight, and serifness), which, when set to particular values, generates a collection of imagable glyphs. <UNICODE>


The term "font" is often used interchangeably with "typeface". As historically used in typography, a typeface is a family of one or more fonts that share a common general design. For example, "Times Roman" is actually a typeface, with a collection of fonts

术语“字体”经常与“字体”互换使用。正如历史上在印刷术中使用的那样,字体是一个或多个字体的家族,它们共享一个通用的设计。例如,“Times Roman”实际上是一种字体,带有一系列字体

such as "Times Roman Bold", "Times Roman Medium", "Times Roman Italic", and so on. Some sources even consider different type sizes within a typeface to be different fonts. While those distinctions are rarely important for internationalization purposes, there are exceptions. Those writing specifications should be very careful about definitions in cases in which the exceptions might lead to ambiguity.


bidirectional display


The process or result of mixing left-to-right oriented text and right-to-left oriented text in a single line is called bidirectional display, often abbreviated as "bidi". <UNICODE>


Most of the world's written languages are displayed left-to-right. However, many widely-used written languages such as ones based on the Hebrew or Arabic scripts are displayed primarily right-to-left (numerals are a common exception in the modern scripts). Right-to-left text often confuses protocol writers because they have to keep thinking in terms of the order of characters in a string in memory, an order that might be different from what they see on the screen. (Note that some languages are written both horizontally and vertically and that some historical ones use other display orderings.)


Further, bidirectional text can cause confusion because there are formatting characters in ISO/IEC 10646 that cause the order of display of text to change. These explicit formatting characters change the display regardless of the implicit left-to-right or right-to-left properties of characters. Text that might contain those characters typically requires careful processing before being sorted or compared for equality.

此外,双向文本可能导致混淆,因为ISO/IEC 10646中存在导致文本显示顺序改变的格式化字符。无论字符的隐式从左到右或从右到左属性如何,这些显式格式字符都会更改显示。可能包含这些字符的文本在排序或比较是否相等之前通常需要仔细处理。

It is common to see strings with text in both directions, such as strings that include both text and numbers, or strings that contain a mixture of scripts.


Unicode has a long and incredibly detailed algorithm for displaying bidirectional text [UAX9].


undisplayable character


A character that has no displayable form. <RFC6365>


For instance, the zero-width space (U+200B) cannot be displayed because it takes up no horizontal space. Formatting characters such as those for setting the direction of text are also undisplayable. Note, however, that every character in [UNICODE]


has a glyph associated with it, and that the glyphs for undisplayable characters are enclosed in a dashed square as an indication that the actual character is undisplayable.


The property of a character that causes it to be undisplayable is intrinsic to its definition. Undisplayable characters can never be displayed in normal text (the dashed square notation is used only in special circumstances). Printable characters whose Unicode definitions are associated with glyphs that cannot be rendered on a particular system are not, in this sense, undisplayable.


writing style


Conventions of writing the same script in different styles. <RFC6365>


Different communities using the script may find text in different writing styles difficult to read and possibly unintelligible. For example, the Perso-Arabic Nastalique writing style and the Arabic Naskh writing style both use the Arabic script but have very different renderings and are not mutually comprehensible. Writing styles may have significant impact on internationalization; for example, the Nastalique writing style requires significantly more line height than Naskh writing style.


6. Text in Current IETF Protocols
6. 当前IETF协议中的文本

Many IETF protocols started off being fully internationalized, while others have been internationalized as they were revised. In this process, IETF members have seen patterns in the way that many protocols use text. This section describes some specific protocol interactions with text.


protocol elements


Protocol elements are uniquely named parts of a protocol. <RFC6365>


Almost every protocol has named elements, such as "source port" in TCP. In some protocols, the names of the elements (or text tokens for the names) are transmitted within the protocol. For example, in SMTP and numerous other IETF protocols, the names of the verbs are part of the command stream. The names are thus part of the protocol standard. The names of protocol elements are not normally seen by end users, and it is rarely appropriate to internationalize protocol element names (even while the elements themselves can be internationalized).


name spaces


A name space is the set of valid names for a particular item, or the syntactic rules for generating these valid names. <RFC6365>


Many items in Internet protocols use names to identify specific instances or values. The names may be generated (by some prescribed rules), registered centrally (e.g., such as with IANA), or have a distributed registration and control mechanism, such as the names in the DNS.


on-the-wire encoding


The encoding and decoding used before and after transmission over the network is often called the "on-the-wire" (or sometimes just "wire") format. <RFC6365>


Characters are identified by code points. Before being transmitted in a protocol, they must first be encoded as bits and octets. Similarly, when characters are received in a transmission, they have been encoded, and a protocol that needs to process the individual characters needs to decode them before processing.


parsed text


Text strings that have been analyzed for subparts. <RFC6365>


In some protocols, free text in text fields might be parsed. For example, many mail user agents (MUAs) will parse the words in the text of the Subject: field to attempt to thread based on what appears after the "Re:" prefix.


Such conventions are very sensitive to localization. If, for example, a form like "Re:" is altered by an MUA to reflect the language of the sender or recipient, a system that subsequently does threading may not recognize the replacement term as a delimiter string.


charset identification


Specification of the charset used for a string of text. <RFC6365>


Protocols that allow more than one charset to be used in the same place should require that the text be identified with the appropriate charset. Without this identification, a program looking at the text cannot definitively discern the charset of the text. Charset identification is also called "charset tagging".


language identification


Specification of the human language used for a string of text. <RFC6365>


Some protocols (such as MIME and HTTP) allow text that is meant for machine processing to be identified with the language used in the text. Such identification is important for machine processing of the text, such as by systems that render the text by speaking it. Language identification is also called "language tagging". The IETF "LTRU" standards [RFC5646] and [RFC4647] provide a comprehensive model for language identification.




MIME (Multipurpose Internet Mail Extensions) is a message format that allows for textual message bodies and headers in character sets other than US-ASCII in formats that require ASCII (most notably RFC 5322, the standard for Internet mail headers [RFC5322]). MIME is described in RFCs 2045 through 2049, as well as more recent RFCs. <RFC6365>

MIME(Multipurpose Internet Mail Extensions,多用途Internet邮件扩展)是一种消息格式,允许文本消息正文和字符集(US-ASCII除外)中的标题采用需要ASCII的格式(最著名的是RFC 5322,Internet邮件标题的标准[RFC5322])。MIME在RFCs 2045到2049以及最近的RFCs中有描述<RFC6365>

transfer encoding syntax


A transfer encoding syntax (TES) (sometimes called a transfer encoding scheme) is a reversible transform of already encoded data that is represented in one or more character encoding schemes. <RFC6365>


TESs are useful for encoding types of character data into another format, usually for allowing new types of data to be transmitted over legacy protocols. The main examples of TESs used in the IETF include Base64 and quoted-printable. MIME identifies the transfer encoding syntax for body parts as a Content-transfer-encoding, occasionally abbreviated C-T-E.




      Base64 is a transfer encoding syntax that allows binary data to be
      represented by the ASCII characters A through Z, a through z, 0
      through 9, +, /, and =.  It is defined in [RFC2045]. <RFC6365>
      Base64 is a transfer encoding syntax that allows binary data to be
      represented by the ASCII characters A through Z, a through z, 0
      through 9, +, /, and =.  It is defined in [RFC2045]. <RFC6365>

quoted printable


Quoted printable is a transfer encoding syntax that allows strings that have non-ASCII characters mixed in with mostly ASCII printable characters to be somewhat human readable. It is described in [RFC2047]. <RFC6365>

Quoted printable是一种传输编码语法,它允许非ASCII字符与大部分ASCII可打印字符混合的字符串具有一定的可读性。[RFC2047]对此进行了描述<RFC6365>

The quoted printable syntax is generally considered to be a failure at being readable. It is jokingly referred to as "quoted unreadable".




      XML (which is an approximate abbreviation for Extensible Markup
      Language) is a popular method for structuring text.  XML text that
      is not encoded as UTF-8 is explicitly tagged with charsets, and
      all text in XML consists only of Unicode characters.  The
      specification for XML can be found at <>.
      XML (which is an approximate abbreviation for Extensible Markup
      Language) is a popular method for structuring text.  XML text that
      is not encoded as UTF-8 is explicitly tagged with charsets, and
      all text in XML consists only of Unicode characters.  The
      specification for XML can be found at <>.

ASN.1 text formats


The ASN.1 data description language has many formats for text data. The formats allow for different repertoires and different encodings. Some of the formats that appear in IETF standards based on ASN.1 include IA5String (all ASCII characters), PrintableString (most ASCII characters, but missing many punctuation characters), BMPString (characters from ISO/IEC 10646 plane 0 in UTF-16BE format), UTF8String (just as the name implies), and TeletexString (also called T61String).

ASN.1数据描述语言有多种文本数据格式。这些格式允许不同的曲目和不同的编码。基于ASN.1的IETF标准中出现的一些格式包括IA5String(所有ASCII字符)、PrintableString(大多数ASCII字符,但缺少许多标点字符)、BMPString(UTF-16BE格式的ISO/IEC 10646平面0中的字符)、UTF8String(顾名思义)和TeletextString(也称为T61String)。

ASCII-compatible encoding (ACE)


Starting in 1996, many ASCII-compatible encoding schemes (which are actually transfer encoding syntaxes) have been proposed as possible solutions for internationalizing host names and some other purposes. Their goal is to be able to encode any string of ISO/IEC 10646 characters using the preferred syntax for domain names (as described in STD 13). At the time of this writing, only the ACE produced by Punycode [RFC3492] has become an IETF standard.

从1996年开始,许多ASCII兼容编码方案(实际上是传输编码语法)被提出作为国际化主机名和其他目的的可能解决方案。他们的目标是能够使用域名的首选语法(如STD 13所述)对ISO/IEC 10646字符的任何字符串进行编码。在撰写本文时,只有Punycode[RFC3492]生产的ACE已成为IETF标准。

The choice of ACE forms to internationalize legacy protocols must be made with care as it can cause some difficult side effects [RFC6055].


LDH label


The classical label form used in the DNS and most applications that call on it, albeit with some additional restrictions, reflects the early syntax of "hostnames" [RFC0952] and limits those names to ASCII letters, digits, and embedded hyphens. The hostname syntax is identical to that described as the "preferred name syntax" in Section 3.5 of RFC 1034 [RFC1034] as modified by

DNS和大多数调用它的应用程序中使用的经典标签形式(尽管有一些附加限制)反映了“主机名”[RFC0952]的早期语法,并将这些名称限制为ASCII字母、数字和嵌入连字符。主机名语法与RFC 1034[RFC1034]第3.5节中描述的“首选名称语法”相同,由修改

RFC 1123 [RFC1123]. LDH labels are defined in a more restrictive and precise way for internationalization contexts as part of the IDNA2008 specification [RFC5890].

RFC 1123[RFC1123]。作为IDNA2008规范[RFC5890]的一部分,LDH标签在国际化上下文中以更严格和精确的方式定义。

7. Terms Associated with Internationalized Domain Names
7. 与国际化域名相关的术语
7.1. IDNA Terminology
7.1. IDNA术语

The current specification for Internationalized Domain Names (IDNs), known formally as Internationalized Domain Names for Applications or IDNA, is referred to in the IETF and parts of the broader community as "IDNA2008" and consists of several documents. Section 2.3 of the first of those documents, commonly known as "IDNA2008 Definitions" [RFC5890] provides definitions and introduces some specialized terms for differentiating among types of DNS labels in an IDN context. Those terms are listed in the table below; see RFC 5890 for the specific definitions if needed.

当前的国际化域名规范(IDN),正式称为应用程序国际化域名或IDNA,在IETF和更广泛的社区中称为“IDNA2008”,由多个文档组成。第一份文件的第2.3节,通常称为“IDNA2008定义”[RFC5890]提供了定义,并介绍了一些专门术语,用于区分IDN上下文中的DNS标签类型。下表列出了这些术语;如有需要,具体定义见RFC 5890。

ACE Prefix A-label Domain Name Slot IDNA-valid string Internationalized Domain Name (IDN) Internationalized Label LDH Label Non-Reserved LDH label (NR-LDH label) U-label


Two additional terms entered the IETF's vocabulary as part of the earlier IDN effort [RFC3490] (IDNA2003):




Stringprep [RFC3454] provides a model and character tables for preparing and handling internationalized strings. It was used in the original IDN specification (IDNA2003) via a profile called "Nameprep" [RFC3491]. It is no longer in use in IDNA, but continues to be used in profiles by a number of other protocols. <RFC6365>




This is the name of the algorithm [RFC3492] used to convert otherwise-valid IDN labels from native-character strings expressed in Unicode to an ASCII-compatible encoding (ACE). Strictly speaking, the term applies to the algorithm only. In practice, it is widely, if erroneously, used to refer to strings that the algorithm encodes.


7.2. Character Relationships and Variants
7.2. 角色关系和变体

The term "variant" was introduced into the IETF i18n vocabulary with the JET recommendations [RFC3743]. As used there, it referred strictly to the relationship between Traditional Chinese characters and their Simplified equivalents. The JET recommendations provided a model for identifying these pairs of characters and labels that used them. Specific recommendations for variant handling for the Chinese language were provided in a follow-up document [RFC4713].

术语“变体”与JET建议一起引入IETF i18n词汇表[RFC3743]。在这里,它严格地指的是繁体汉字和简化汉字之间的关系。JET建议提供了一个识别这些字符对和使用它们的标签的模型。后续文件[RFC4713]中提供了中文变体处理的具体建议。

In more recent years, the term has also been used to describe other collections of characters or strings that might be perceived as equivalent. Those collections have involved one or more of several categories of characters and labels containing them including:


o "visually similar" or "visually confusable" characters. These may be limited to characters in different scripts, characters in a single script, or both, and may be those that can appear to be alike even when high-distinguishability reference fonts are used or under various circumstances that may involve malicious choices of typefaces or other ways to trick user perception. Trivial examples include ASCII "l" and "1" and Latin and Cyrillic "a".

o “视觉相似”或“视觉易混淆”字符。这些可能仅限于不同脚本中的字符、单个脚本中的字符或两者,并且可能是那些即使在使用高分辨率参考字体时,或在可能涉及恶意字体选择或其他欺骗用户感知的方式的各种情况下,也可能看起来相似的字符。简单的例子包括ASCII“l”和“1”以及拉丁语和西里尔语“a”。

o Characters assigned more than one Unicode code point because of some special property. These characters may be considered "the same" for some purposes and different for others (or by other users). One of the most commonly cited examples is the Arabic YEH, which is encoded more than once because some of its shapes are different across different languages. Another example are the Greek lowercase sigma and final sigma: if the latter were viewed purely as a positional presentation variation on the former, it should not have been assigned a separate code point.

o 由于某些特殊属性,字符分配了多个Unicode代码点。这些字符在某些情况下可能被视为“相同”,而在其他情况下(或其他用户)可能被视为“不同”。最常被引用的例子之一是阿拉伯语YEH,它被多次编码,因为它的一些形状在不同的语言中是不同的。另一个例子是希腊字母小写的sigma和final sigma:如果后者纯粹被视为前者的位置表示变体,则不应为其分配单独的代码点。

o Numerals and labels including them. Unlike letters, the "meaning" of decimal digits is clear and unambiguous regardless of the script with which they are associated. Some scripts are routinely used almost interchangeably with European digits and digits native to that script. The Arabic script has two sets of digits (U+0660..U+0669 and U+06F0..U=06F9), written identically for zero through three and seven through nine but differently for four through six; European digits predominate in other areas. Substitution of digits with the same numeric value in labels may give rise to another type of variant.

o 数字和标签,包括它们。与字母不同,十进制数字的“含义”是明确的,无论它们与哪个脚本相关联。一些脚本通常与欧洲数字和该脚本固有的数字互换使用。阿拉伯文字有两组数字(U+0660..U+0669和U+06F0..U=06F9),以相同的方式表示零到三和七到九,但以不同的方式表示四到六;欧洲数字在其他领域占主导地位。替换标签中具有相同数值的数字可能会产生另一种变体。

o Orthographic differences within a language. Many languages have alternate choices of spellings or spellings that differ by locale. Users of those languages generally recognize the spellings as equivalent, at least as much so as the variations described above.

o 一种语言中的正字法差异。许多语言都有不同的拼写选择,或因语言环境而异的拼写选择。这些语言的使用者通常认为拼写是等效的,至少与上述变体一样。

Examples include "color" and "colour" in English, German words spelled with o-umlaut or "oe", and so on. Some of these relationships may also create other types of language-specific perceived differences that do not exist for other languages using the same script. For example, in Arabic language usage at the end of words, ARABIC LETTER TEH MARBUTA (U+0629) and ARABIC LETTER HEH (U+0647) are differently shaped (one has 2 dots in top of it), but they are used interchangeably in writing: they "sound" similar when pronounced at the end of phrase, and hence the LETTER TEH MARBUTA sometimes is written as LETTER HEH and the two are considered "confusable" in that context.

例如英语中的“color”和“color”,德语中拼写为o-umlaut或“oe”的单词等等。其中一些关系还可能产生其他类型的特定于语言的感知差异,这些差异对于使用相同脚本的其他语言来说是不存在的。例如,在阿拉伯语单词末尾的用法中,阿拉伯字母TEH MARBUTA(U+0629)和阿拉伯字母HEH(U+0647)的形状不同(其中一个字母顶部有两个点),但在书写中可以互换使用:它们在短语末尾发音时“发音”相似,因此,字母TEH MARBUTA有时被写成字母HEH,在这种情况下,这两个字母被认为是“可混淆的”。

The term "variant" as used in this section should also not be confused with other uses of the term in this document or in Unicode terminology (e.g., those in Section 4.1 above). If the term is to be used at all, context should clearly distinguish among these different uses and, in particular, between variant characters and variant labels. Local text should identify which meaning, or combination of meanings, are intended.


8. Other Common Terms in Internationalization
8. 国际化中的其他常用术语

This is a hodge-podge of other terms that have appeared in internationalization discussions in the IETF.




Locale is the user-specific location and cultural information managed by a computer. <RFC6365>


Because languages and orthographic conventions differ from country to country (and even region to region within a country), the locale of the user can often be an important factor. Typically, the locale information for a user includes the language(s) used.


Locale issues go beyond character use, and can include things such as the display format for currency, dates, and times. Some locales (especially the popular "C" and "POSIX" locales) do not include language information.


It should be noted that there are many thorny, unsolved issues with locale. For example, should text be viewed using the locale information of the person who wrote the text, information that would apply to the location of the system storing or providing the text, or the person viewing it? What if the person viewing it is traveling to different locations? Should only some of the locale information affect creation and editing of text?


Latin characters


"Latin characters" is a not-precise term for characters historically related to ancient Greek script as modified in the Roman Republic and Empire and currently used throughout the world. <RFC6365>


The base Latin characters are a subset of the ASCII repertoire and have been augmented by many single and multiple diacritics and quite a few other characters. ISO/IEC 10646 encodes the Latin characters in including ranges U+0020..U+024F and U+1E00..U+1EFF.

基本拉丁字符是ASCII指令集的一个子集,并已由许多单个和多个变音符号以及许多其他字符扩展。ISO/IEC 10646编码范围包括U+0020..U+024F和U+1E00..U+1EFF的拉丁字符。

Because "Latin characters" is used in different contexts to refer to the letters from the ASCII repertoire, the subset of those characters used late in the Roman Republic period, or the different subset used to write Latin in medieval times, the entire ASCII repertoire, all of the code points in the extended Latin script as defined by Unicode, and other collections, the term should be avoided in IETF specifications when possible. Similarly, "Basic Latin" should not be used as a synonym for "ASCII".




The transliteration of a non-Latin script into Latin characters. <RFC6365>


Because of their widespread use, Latin characters (or graphemes constructed from them) are often used to try to write text in languages that didn't previously have writing systems or whose writing systems were originally based on different scripts. For example, there are two popular romanizations of Chinese: Wade-Giles and Pinyin, the latter of which is by far more common today. Many romanization systems are inexact and do not give perfect round-trip mappings between the native script and the Latin characters.

由于拉丁字符的广泛使用,拉丁字符(或由其构成的字形)经常被用来尝试用以前没有书写系统或其书写系统最初基于不同脚本的语言书写文本。例如,汉语有两种流行的罗马化:韦德·吉尔斯(Wade Giles)和拼音,后者在今天更为常见。许多罗马化系统是不精确的,不能在本地脚本和拉丁字符之间提供完美的往返映射。

CJK characters and Han characters


The ideographic characters used in Chinese, Japanese, Korean, and traditional Vietnamese writing systems are often called "CJK characters" after the initial letters of the language names in English. They are also called "Han characters", after the term in Chinese that is often used for these characters. <RFC6365>


Note that Han characters do not include the phonetic characters used in the Japanese and Korean languages. Users of the term "CJK characters" may or may not assume those additional characters are included.


In ISO/IEC 10646, the Han characters were "unified", meaning that each set of Han characters from Japanese, Chinese, and/or Korean that had the same origin was assigned a single code point. The positive result of this was that many fewer code points were needed to represent Han; the negative result of this was that characters that people who write the three languages think are different have the same code point. There is a great deal of disagreement on the nature, the origin, and the severity of the problems caused by Han unification.

在ISO/IEC 10646中,汉字是“统一”的,这意味着来自日语、汉语和/或韩语的具有相同来源的每组汉字都被分配一个代码点。这样做的积极结果是,代表汉族所需的代码点要少得多;这样做的负面结果是,编写这三种语言的人认为不同的字符具有相同的代码点。关于汉朝统一所造成的问题的性质、根源和严重性,存在着很大的分歧。



The process of conveying the meaning of some passage of text in one language, so that it can be expressed equivalently in another language. <RFC6365>


Many language translation systems are inexact and cannot be applied repeatedly to go from one language to another to another.




The process of representing the characters of an alphabetical or syllabic system of writing by the characters of a conversion alphabet. <RFC6365>


Many script transliterations are exact, and many have perfect round-trip mappings. The notable exception to this is romanization, described above. Transliteration involves converting text expressed in one script into another script, generally on a letter-by-letter basis. There are many official and unofficial transliteration standards, most notably those from ISO TC 46 and the U.S. Library of Congress.

许多脚本的音译都是精确的,并且许多都有完美的往返映射。值得注意的例外是上文所述的罗马化。音译包括将一个脚本中表达的文本转换成另一个脚本,通常是逐字翻译。有许多官方和非官方的音译标准,尤其是来自ISO TC 46和美国国会图书馆的标准。



The process of systematically writing the sounds of some passage of spoken language, generally with the use of a technical phonetic alphabet (usually Latin-based) or other systematic transcriptional orthography. Transcription also sometimes refers to the conversion of written text into a transcribed form, based on the sound of the text as if it had been spoken. <RFC6365>


Unlike transliterations, which are generally designed to be round-trip convertible, transcriptions of written material are almost never round-trip convertible to their original form, at least without some supplemental information.


regular expressions


Regular expressions provide a mechanism to select specific strings from a set of character strings. Regular expressions are a language used to search for text within strings, and possibly modify the text found with other text. <RFC6365>


Pattern matching for text involves being able to represent one or more code points in an abstract notation, such as searching for all capital Latin letters or all punctuation. The most common mechanism in IETF protocols for naming such patterns is the use of regular expressions. There is no single regular expression language, but there are numerous very similar dialects that are not quite consistent with each other.


The Unicode Consortium has a good discussion about how to adapt regular expression engines to use Unicode. [UTR18]


private use character


      ISO/IEC 10646 code points from U+E000 to U+F8FF, U+F0000 to
      U+FFFFD, and U+100000 to U+10FFFD are available for private use.
      This refers to code points of the standard whose interpretation is
      not specified by the standard and whose use may be determined by
      private agreement among cooperating users. <UNICODE>
      ISO/IEC 10646 code points from U+E000 to U+F8FF, U+F0000 to
      U+FFFFD, and U+100000 to U+10FFFD are available for private use.
      This refers to code points of the standard whose interpretation is
      not specified by the standard and whose use may be determined by
      private agreement among cooperating users. <UNICODE>

The use of these "private use" characters is defined by the parties who transmit and receive them, and is thus not appropriate for standardization. (The IETF has a long history of private use names for things such as "x-" names in MIME types, charsets, and languages. Most of the experience with these has been quite negative, with many implementors assuming that private use names are in fact public and long-lived.)


9. Security Considerations
9. 安全考虑

Security is not discussed directly in this document. While the definitions here have no direct effect on security, they are used in many security contexts. For example, authentication usually involves comparing two tokens, and one or both of those tokens might be text; thus, some methods of comparison might involve using some of the internationalization concepts for which terms are defined in this document.


Having said that, other RFCs dealing with internationalization have security consideration descriptions that may be useful to the reader of this document. In particular, the security considerations in RFC 3454, RFC 3629, RFC 4013 [RFC4013], and RFC 5890 go into a fair amount of detail.

话虽如此,其他涉及国际化的RFC都有安全考虑说明,这些说明可能对本文档的读者有用。特别是,RFC 3454、RFC 3629、RFC 4013[RFC4013]和RFC 5890中的安全注意事项非常详细。

10. References
10. 工具书类
10.1. Normative References
10.1. 规范性引用文件

[ISOIEC10646] ISO/IEC, "ISO/IEC 10646:2011. International Standard -- Information technology - Universal Multiple-Octet Coded Character Set (UCS)", 2011.


[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047, November 1996.

[RFC2047]Moore,K.,“MIME(多用途互联网邮件扩展)第三部分:非ASCII文本的消息头扩展”,RFC 2047,1996年11月。

[UNICODE] The Unicode Consortium, "The Unicode Standard, Version 6.0", (Mountain View, CA: The Unicode Consortium, 2011. ISBN 978-1-936213-01-6). <>.

[UNICODE]UNICODE联盟,“UNICODE标准,版本6.0”(加利福尼亚州山景城:UNICODE联盟,2011年,ISBN 978-1-936213-01-6)<>.

10.2. Informative References
10.2. 资料性引用

[CHARMOD] W3C, "Character Model for the World Wide Web 1.0", 2005, <>.


[FRAMEWORK] ISO/IEC, "ISO/IEC TR 11017:1997(E). Information technology - Framework for internationalization, prepared by ISO/IEC JTC 1/SC 22/WG 20", 1997.

[框架]ISO/IEC,“ISO/IEC TR 11017:1997(E).信息技术-国际化框架,由ISO/IEC JTC 1/SC 22/WG 20编制”,1997年。

[ISO3166] ISO, "ISO 3166-1:2006 - Codes for the representation of names of countries and their subdivisions -- Part 1: Country codes", 2006.

[ISO3166]ISO,“ISO 3166-1:2006——国家及其分支机构名称表示代码——第1部分:国家代码”,2006年。

[ISO639] ISO, "ISO 639-1:2002 - Code for the representation of names of languages - Part 1: Alpha-2 code", 2002.

[ISO639]ISO,“ISO 639-1:2002-语言名称表示代码-第1部分:Alpha-2代码”,2002年。

[ISO6429] ISO/IEC, "ISO/IEC, "ISO/IEC 6429:1992. Information technology -- Control functions for coded character sets"", ISO/IEC 6429:1992, 1992.

[ISO6429]ISO/IEC,“ISO/IEC”,ISO/IEC 6429:1992。信息技术编码字符集的控制功能,ISO/IEC 6429:1992,1992。

[RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet host table specification", RFC 952, October 1985.

[RFC0952]Harrenstien,K.,Stahl,M.和E.Feinler,“国防部互联网主机表规范”,RFC 952,1985年10月。

[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987.

[RFC1034]Mockapetris,P.,“域名-概念和设施”,STD 13,RFC 1034,1987年11月。

[RFC1123] Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, October 1989.

[RFC1123]Braden,R.,“互联网主机的要求-应用和支持”,STD 3,RFC 1123,1989年10月。

[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.

[RFC2045]Freed,N.和N.Borenstein,“多用途Internet邮件扩展(MIME)第一部分:Internet邮件正文格式”,RFC 20451996年11月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998.

[RFC2277]Alvestrand,H.,“IETF字符集和语言政策”,BCP 18,RFC 2277,1998年1月。

[RFC2781] Hoffman, P. and F. Yergeau, "UTF-16, an encoding of ISO 10646", RFC 2781, February 2000.

[RFC2781]Hoffman,P.和F.Yergeau,“UTF-16,ISO 10646编码”,RFC 2781,2000年2月。

[RFC2978] Freed, N. and J. Postel, "IANA Charset Registration Procedures", BCP 19, RFC 2978, October 2000.

[RFC2978]Freed,N.和J.Postel,“IANA字符集注册程序”,BCP 19,RFC 2978,2000年10月。

[RFC3454] Hoffman, P. and M. Blanchet, "Preparation of Internationalized Strings ("stringprep")", RFC 3454, December 2002.

[RFC3454]Hoffman,P.和M.Blanchet,“国际化弦的准备(“stringprep”)”,RFC 3454,2002年12月。

[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, "Internationalizing Domain Names in Applications (IDNA)", RFC 3490, March 2003.

[RFC3490]Faltstrom,P.,Hoffman,P.,和A.Costello,“应用程序中的域名国际化(IDNA)”,RFC 34902003年3月。

[RFC3491] Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)", RFC 3491, March 2003.

[RFC3491]Hoffman,P.和M.Blanchet,“Nameprep:国际化域名(IDN)的Stringprep配置文件”,RFC 3491,2003年3月。

[RFC3492] Costello, A., "Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)", RFC 3492, March 2003.

[RFC3492]Costello,A.,“Punycode:应用程序中国际化域名的Unicode引导字符串编码(IDNA)”,RFC 3492,2003年3月。

[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003.

[RFC3629]Yergeau,F.,“UTF-8,ISO 10646的转换格式”,STD 63,RFC 3629,2003年11月。

[RFC3743] Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint Engineering Team (JET) Guidelines for Internationalized Domain Names (IDN) Registration and Administration for Chinese, Japanese, and Korean", RFC 3743, April 2004.

[RFC3743]Konishi,K.,Huang,K.,Qian,H.,和Y.Ko,“中国,日本和韩国的国际域名(IDN)注册和管理联合工程团队(JET)指南”,RFC 37432004年4月。

[RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names and Passwords", RFC 4013, February 2005.


[RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", BCP 47, RFC 4647, September 2006.

[RFC4647]Phillips,A.和M.Davis,“语言标记的匹配”,BCP 47,RFC 4647,2006年9月。

[RFC4713] Lee, X., Mao, W., Chen, E., Hsu, N., and J. Klensin, "Registration and Administration Recommendations for Chinese Domain Names", RFC 4713, October 2006.

[RFC4713]Lee,X.,Mao,W.,Chen,E.,Hsu,N.,和J.Klensin,“中文域名的注册和管理建议”,RFC 4713,2006年10月。

[RFC5137] Klensin, J., "ASCII Escaping of Unicode Characters", BCP 137, RFC 5137, February 2008.

[RFC5137]Klensin,J.,“Unicode字符的ASCII转义”,BCP 137,RFC 5137,2008年2月。

[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network Interchange", RFC 5198, March 2008.

[RFC5198]Klensin,J.和M.Padlipsky,“网络交换的Unicode格式”,RFC 51982008年3月。

[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, October 2008.


[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009.

[RFC5646]Phillips,A.和M.Davis,“识别语言的标记”,BCP 47,RFC 5646,2009年9月。

[RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, August 2010.

[RFC5890]Klensin,J.,“应用程序的国际化域名(IDNA):定义和文档框架”,RFC 58902010年8月。

[RFC5892] Faltstrom, P., "The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)", RFC 5892, August 2010.

[RFC5892]Faltstrom,P.,“Unicode代码点和应用程序的国际化域名(IDNA)”,RFC 58922010年8月。

[RFC5895] Resnick, P. and P. Hoffman, "Mapping Characters for Internationalized Domain Names in Applications (IDNA) 2008", RFC 5895, September 2010.

[RFC5895]Resnick,P.和P.Hoffman,“应用程序中国际化域名的映射字符(IDNA)2008”,RFC 58952010年9月。

[RFC6055] Thaler, D., Klensin, J., and S. Cheshire, "IAB Thoughts on Encodings for Internationalized Domain Names", RFC 6055, February 2011.

[RFC6055]Thaler,D.,Klensin,J.,和S.Cheshire,“IAB对国际化域名编码的思考”,RFC 60552011年2月。

[UAX34] The Unicode Consortium, "Unicode Standard Annex #34: Unicode Named Character Sequences", 2010, <>.


[UAX9] The Unicode Consortium, "Unicode Standard Annex #9: Unicode Bidirectional Algorithm", 2010, <>.


[US-ASCII] ANSI, "Coded Character Set -- 7-bit American Standard Code for Information Interchange, ANSI X3.4-1986", 1986.

[US-ASCII]ANSI,“编码字符集——信息交换用7位美国标准代码,ANSI X3.4-1986”,1986年。

[UTN6] The Unicode Consortium, "Unicode Technical Note #5: BOCU-1: MIME-Compatible Unicode Compression", 2006, <>.


[UTR15] The Unicode Consortium, "Unicode Standard Annex #15: Unicode Normalization Forms", 2010, <>.


[UTR18] The Unicode Consortium, "Unicode Standard Annex #18: Unicode Regular Expressions", 2008, <>.


[UTR22] The Unicode Consortium, "Unicode Technical Standard #22: Unicode Character Mapping Markup Language", 2009, <>.


[UTR6] The Unicode Consortium, "Unicode Technical Standard #6: A Standard Compression Scheme for Unicode", 2005, <>.


[W3C-i18n-Def] W3C, "Localization vs. Internationalization", September 2010, < questions/qa-i18n.en>.

[W3C-i18n-Def]W3C,“本地化与国际化”,2010年9月< 问题/qa-i18n.en>。

Appendix A. Additional Interesting Reading

Barry, Randall, ed. ALA-LC Romanization Tables. Washington: U.S. Library of Congress, 1997. ISBN 0844409405

Barry,Randall,ed.ALA-LC罗马化表。华盛顿:美国国会图书馆,1997年。ISBN 0844409405

Coulmas, Florian. Blackwell Encyclopedia of Writing Systems. Oxford: Blackwell Publishers, 1999. ISBN 063121481X

弗洛里安,库尔马斯。布莱克威尔写作系统百科全书。牛津:布莱克威尔出版社,1999年。ISBN 063121481X

Dalby, Andrew. Dictionary of Languages: The Definitive Reference to More than 400 Languages. New York: Columbia University Press, 2004. ISBN 978-0231115698

戴比,安德鲁。语言词典:对400多种语言的权威参考。纽约:哥伦比亚大学出版社,2004年。ISBN 978-0231115698

Daniels, Peter, and William Bright. The World's Writing Systems. New York: Oxford University Press, 1996. ISBN 0195079930

丹尼尔斯、彼得和威廉·布莱特。世界的书写系统。纽约:牛津大学出版社,1996年。ISBN 0195079930

DeFrancis, John. The Chinese Language: Fact and Fantasy. Honolulu: University of Hawaii Press, 1984. ISBN 0-8284-085505 and 0-8248-1058-6

德弗兰西斯,约翰。中文:事实与幻想。火奴鲁鲁:夏威夷大学出版社,1984。ISBN 0-8284-085505和0-8248-1058-6

Drucker, Joanna. The Alphabetic Labyrinth: The Letters in History and Imagination. London: Thames & Hudson, 1995. ISBN 0-500-28068-1

德鲁克,乔安娜。字母迷宫:历史和想象中的字母。伦敦:泰晤士河和哈德逊河,1995年。ISBN 0-500-28068-1

Fazzioli, Edoardo. Chinese Calligraphy. New York: Abbeville Press, 1986, 1987 (English translation). ISBN 0-89659-774-1

法齐奥利,埃多尔多。中国书法。纽约:艾比维尔出版社,1986年,1987年(英译)。ISBN 0-89659-774-1

Hooker, J.T., et al. Reading the Past: Ancient Writing from Cuneiform to the Alphabet. London: British Museum Press, 1990. ISBN 0-7141-8077-7

胡克,J.T.等人,《阅读过去:从楔形文字到字母表的古代书写》。伦敦:大英博物馆出版社,1990年。ISBN 0-7141-8077-7

Lunde, Ken. CJKV Information Processing. Sebastopol, CA: O'Reilly & Assoc., 1999. ISBN 1-56592-224-7

伦德,肯。CJKV信息处理。塞巴斯托波尔,加利福尼亚州:O'Reilly&Assoc.,1999年。ISBN 1-56592-224-7

Nakanishi, Akira. Writing Systems of the World. Rutland, VT: Charles E. Tuttle Company, 1980. ISBN 0804816549

中山昭一。世界的书写系统。佛蒙特州拉特兰:查尔斯·E·塔特尔公司,1980年。ISBN 0804816549

Robinson, Andrew. The Story of Writing: Alphabets, Hieroglyphs, & Pictograms. London: Thames & Hudson, 1995, 2000. ISBN 0-500-28156-4

安德鲁·罗宾逊。书写的故事:字母、象形文字和象形图。伦敦:泰晤士河和哈德逊河,1995年,2000年。ISBN 0-500-28156-4

Sacks, David. Language Visible. New York: Broadway Books (a division of Random House, Inc.), 2003. ISBN 0-7679-1172-5

萨克斯,大卫。语言可见。纽约:百老汇图书(兰登书屋公司的一个部门),2003年。ISBN 0-7679-1172-5

Appendix B. Acknowledgements

The definitions in this document come from many sources, including a wide variety of IETF documents.


James Seng contributed to the initial outline of RFC 3536. Harald Alvestrand and Martin Duerst made extensive useful comments on early versions. Others who contributed to the development of RFC 3536 include Dan Kohn, Jacob Palme, Johan van Wingen, Peter Constable, Yuri Demchenko, Susan Harris, Zita Wenzel, John Klensin, Henning Schulzrinne, Leslie Daigle, Markus Scherer, and Ken Whistler.

James Seng对RFC 3536的初始大纲做出了贡献。哈拉尔德·阿尔韦斯特朗和马丁·杜尔斯特对早期版本作了大量有益的评论。其他对RFC3536的开发做出贡献的人包括丹·科恩、雅各布·帕尔梅、约翰·范文根、彼得·康斯特布尔、尤里·德姆琴科、苏珊·哈里斯、齐塔·温泽尔、约翰·克莱辛、亨宁·舒尔兹林内、莱斯利·戴格尔、马库斯·谢勒和肯·惠斯勒。

Abdulaziz Al-Zoman, Tim Bray, Frank Ellermann, Antonio Marko, JFC Morphin, Sarmad Hussain, Mykyta Yevstifeyev, Ken Whistler, and others identified important issues with, or made specific suggestions for, this new version.

Abdulaziz Al-Zoman、Tim Bray、Frank Ellermann、Antonio Marko、JFC Morpin、Sarmad Hussain、Mykyta Yevstifeyev、Ken Whistler和其他人确定了新版本的重要问题,或提出了具体建议。

Appendix C. Significant Changes from RFC 3536
附录C.RFC 3536的重大变更

This document mostly consists of additions to RFC 3536. The following is a list of the most significant changes.

本文件主要包括对RFC 3536的补充。以下是最重要的变化列表。

o Changed the document's status to BCP.

o 将文档的状态更改为BCP。

o Commonly used synonyms added to several descriptions and indexed.

o 添加到多个描述和索引中的常用同义词。

o A list of terms defined and used in IDNA2008 was added, with a pointer to RFC 5890. Those definitions have not been repeated in this document.

o 添加了IDNA2008中定义和使用的术语列表,并带有指向RFC 5890的指针。这些定义在本文件中没有重复。

o The much-abused term "variant" is now discussed in some detail.

o 现在详细讨论了被滥用的“变体”一词。

o A discussion of different subsets of the Unicode repertoire was added as Section 4.2 and associated definitions were included.

o 第4.2节增加了对Unicode指令集不同子集的讨论,并包括相关定义。

o Added a new term, "writing style".

o 增加了一个新术语“写作风格”。

o Discussions of case-folding and mapping were expanded.

o 扩大了对案例折叠和映射的讨论。

o Minor edits were made to some section titles and a number of other editorial improvements were made.

o 对一些章节标题进行了小的编辑,并对其他一些编辑进行了改进。

o The discussion of control codes was updated to include additional information and clarify that "control code" and "control character" are synonyms.

o 对控制代码的讨论进行了更新,以包括其他信息,并澄清“控制代码”和“控制字符”是同义词。

o Many terms were clarified to reflect contemporary usage.

o 许多术语被澄清以反映当代用法。

o The index to terms by section in RFC 3536 was replaced by an index to pages containing considerably more terms.

o RFC 3536中的条款索引被包含更多条款的页面索引所取代。

o The acknowledgments were updated.

o 确认已更新。

o Some of the references were updated.

o 一些参考资料已更新。

o The supplemental reading list was expanded somewhat.

o 补充阅读清单有所扩大。



A A-label 31 ACE 30, 31 ACE Prefix 31 alphabetic 20 ANSI 13 ASCII 15 ASCII-compatible encoding 30, 31 ASN.1 text formats 30

A标签31 ACE 30,31 ACE前缀31字母20 ANSI 13 ASCII 15 ASCII兼容编码30,31 ASN.1文本格式30

B Base64 29 Basic Multilingual Plane 13 bidi 26 bidirectional display 26 BMP 13 BMPString 30 BOCU-1 14 BOM 14 byte order mark 14

B Base64 29基本多语言平面13 bidi 26双向显示26 BMP 13 BMP字符串30 BOCU-1 14 BOM 14字节顺序标记14

C C-T-E 29 case 18 CCS 7 CEN/ISSS 13 character 6 character encoding form 7 character encoding scheme 8 character repertoire 7 charset 8 charset identification 28 CJK characters 34 code chart 19 code point 16 code table 19 coded character 6

C C-T-E 29案例18 CCS 7 CEN/ISSS 13字符6字符编码表7字符编码方案8字符表7字符集8字符集识别28 CJK字符34代码表19代码点16代码表19编码字符6

coded character set 7 collation 18 combining character 16 combining character sequence 16 compatibility character 22 compatibility variant 22 composite sequence 16 content-transfer-encoding 29 control character 21 control code 21 control sequence 22


D decomposed character 16 diacritic 21 displaying and rendering text 10 Domain Name Slot 31


E encoding forms 13


F font 25 formatting character 22


G glyph 7 glyph code 7 graphic symbol 25


H Han characters 34


I i18n 9 IA5String 30 ideographic 20 IDN 31 IDNA 31 IDNA-valid string 31 IDNA2003 31 IDNA2008 31 IME 24 input method editor 24 input methods 24 internationalization 8 Internationalized Domain Name 31 Internationalized Label 31

I i18n 9 IA5String 30表意文字20 IDN 31 IDNA 31 IDNA有效字符串31 IDNA2003 31 IDNA2008 31 IME 24输入法编辑器24输入法24国际化8国际化域名31国际化标签31

ISO 11 ISO 639 11 ISO 3166 11 ISO 8859 15 ISO TC 46 11

ISO 11 ISO 639 11 ISO 3166 11 ISO 8859 15 ISO TC 46 11

J JIS 13 JTC 1 11

J JIS 13 JTC 1 11

L l10n 9 language 5 language identification 29 Latin characters 34 LDH Label 30 letters 23 Local and regional standards organizations 13 locale 33 localization 9

L l10n 9语言5语言识别29个拉丁字符34个LDH标签30个字母23个地方和地区标准组织13个地区33本地化9

M MIME 29 multilingual 10

M MIME 29多语言10

N name spaces 28 Nameprep 31 NFC 17 NFD 17 NFKC 17 NFKD 17 non-ASCII 23 nonspacing character 21 normalization 17 NR-LDH label 31 NVT 15

N名称空间28 Nameprep 31 NFC 17 NFD 17 NFKC 17 NFKD 17非ASCII 23非空格字符21规范化17 NR-LDH标签31 NVT 15

O on-the-wire encoding 28


P parsed text 28 precomposed character 16 PrintableString 30 private use charater 36 protocol elements 27 punctuation 21 Punycode 30, 31

P解析文本28预合成字符16可打印字符串30专用字符36协议元素27标点21 Punycode 30,31

Q quoted-printable 29


R regular expressions 36 rendering rules 24 repertoire 7 romanization 34


S SAC 13 script 5 SCSU 14 sorting 18 Stringprep 31 surrogate pair 14 symbol 21

S SAC 13脚本5 SCSU 14排序18 Stringprep 31代理项对14符号21

T T61String 30 TeletexString 30 TES 29 transcoding 7 transcription 35 transfer encoding syntax 29 transformation formats 13 translation 35 transliteration 34, 35 typeface 25

T T61字符串30电传字符串30 TES 29转码7转录35传输编码语法29转换格式13翻译35音译34,35字体25

U U-label 31 UCS-2 13 UCS-4 13 undisplayable character 26 Unicode Consortium 12 US-ASCII 15 UTC 12 UTF-8 14

U-label 31 UCS-2 13 UCS-4 13不可扩展字符26 Unicode联合体12 US-ASCII 15 UTC 12 UTF-8 14

UTF-16 14 UTF-16BE 14 UTF-16LE 14 UTF-32 14 UTF8String 30

UTF-16 14 UTF-16BE 14 UTF-16LE 14 UTF-32 14 UTF字符串30

V variant 32


W W3C 13 World Wide Web Consortium 13 writing style 27 writing system 6

W W3C 13万维网联盟13书写风格27书写系统6

X XML 13, 30


Authors' Addresses


Paul Hoffman VPN Consortium



John C Klensin 1770 Massachusetts Ave, Ste 322 Cambridge, MA 02140 USA


   Phone: +1 617 245 1457
   Phone: +1 617 245 1457