Nothing Special   »   [go: up one dir, main page]

[Unicode] Unicode 16.0.0 Tech Site | Site Map | Search
 

Unicode® 16.0.0

2024 September 10 (Announcement)
STATUS: This is a preliminary draft page for an upcoming release. Some details may be missing or incorrect, and some links may be wrong or broken. During the beta review period, feedback on errors will be helpful and appreciated.

This page summarizes the important changes for the Unicode Standard, Version 16.0.0. This version supersedes all previous versions of the Unicode Standard.

A. Summary

Unicode 16.0 adds 5185 characters, for a total of 154,998 characters. The new additions include seven new scripts:

  • Garay is a modern-use script from West Africa.
  • Gurung Khema, Kirat Rai, Ol Onal and Sunuwar are four modern-use scripts from Northeast India and Nepal.
  • Todhri is an historic script used for Albanian.
  • Tulu-Tigalari is an historic script from Southwest India.

Other character additions include seven new emoji characters plus 3,995 additional Egyptian Hieroglyphs and over 700 symbols from legacy computing environments.

In addition to new characters, new “Moji Jōhō Kiban” (文字情報基盤) Japanese source references have been added for over 36,000 CJK unified ideographs. These are reflected in the code charts for virtually all CJK unified ideograph blocks by additional representative glyphs in the “J” column.

New Data Files for Unicode 16.0

  • DoNotEmit.txt. This is a new file that collects information about characters or character sequences that should not be emitted or generated in newly authored text and for which a suitable alternative sequence exists. This data could be used by applications such as input methods or autocorrect.
  • Unikemet.txt. This data file provides property and other character information in support of Egyptian hieroglyphs.

Synchronization

Several other important Unicode specifications have been updated for Version 16.0. The following four Unicode Technical Standards are versioned in synchrony with the Unicode Standard, because their data files cover the same repertoire. All have been updated to Version 16.0:

Specification Scope Data Files
UTS #10, Unicode Collation Algorithm Sorting Unicode text UCA data
UTS #39, Unicode Security Mechanisms Reducing Unicode spoofing Security data
UTS #46, Unicode IDNA Compatibility Processing Compatible processing of non-ASCII URLs IDNA data
IDNA 2008 derived data
UTS #51, Unicode Emoji Emoji and their behavior Emoji data

Some of the changes in Version 16.0 and associated Unicode Technical Standards may require modifications to implementations. For more information, see the migration and modification sections of UTS #10, UTS #39, UTS #46, and UTS #51.

See Sections D through H below for additional details regarding the changes in this version of the Unicode Standard, its associated annexes, and the other synchronized Unicode specifications.

See the following resource links for general information about Unicode versions and other information about the Unicode Standard and other publications of the Unicode Consortium.

B. Technical Overview

Version 16.0 of the Unicode Standard consists of:

  • The core specification
  • The code charts (delta and archival) for this version
  • The Unicode Standard Annexes
  • The Unicode Character Database (UCD)

The core specification gives the general principles, requirements for conformance, and guidelines for implementers. The code charts show representative glyphs for all the Unicode characters. The Unicode Standard Annexes supply detailed normative information about particular aspects of the standard. The Unicode Character Database supplies normative and informative data for implementers to allow them to implement the Unicode Standard.

Core Specification

The core specification for Version 16.0 is available for browsing online as per-chapter web pages. Because the full table of contents for the core specification is provided, with interactive links, no separate bookmarks page is provided for this release, nor are separate chapter links provided directly in this summary page for the Unicode Standard. Anchors for chapters, sections, tables, and figures in the core specification are shown with the convention of a "#" in the left margin of the heading or caption. Those anchors can be clicked on to provide custom bookmarks to any particular portion of the text, down to the level of subsections. Numbering of sections has been extended down to the subsection level, as well, to improve referenceabiity of precise content.

The HTML version of the core specification is authoritative. However, for convenience of reference, an archival version of core specification is also available as a single pdf. (12 MB)

Code Charts

Several sets of code charts are available. They serve different purposes:

Chart Type Description
Latest Code Charts These charts are always the most current code charts available, and may be updated at any time. The charts are organized by scripts and blocks for easy reference. An online index by character name is also provided.
Delta Code Charts These charts show the new blocks and any blocks in which characters were added specifically for Unicode 16.0.0. The new characters and any major updates to the representative glyphs are visually highlighted in these charts.
Archival Code Charts These charts contain the entire set of characters, names and representative glyphs at the time of publication of Unicode 16.0.0.

The delta and archival code charts are a stable part of this release of the Unicode Standard. They will never be updated.

Han Radical-Stroke Indices

There are a number of radical-stroke indices available to assist in the lookup of Han ideographs in the code charts.

Index Type Description
Interactive An interactive CJK character lookup page that supports lookup either by code point or by radical and stroke values.
IICore (3.8 MB) A static radical-stroke index PDF file limited to only the IICore repertoire. (This RS index is seldom updated.)
Unihan Core 2020 (8.2 MB) A static radical-stroke index PDF file limited to only the Unihan Core 2020 repertoire. (This RS index is seldom updated.)
Complete (43 MB) A static radical-stroke index PDF file that covers the entire CJK ideograph repertoire for Unicode 16.0.
Complete A static data file that corresponds to the complete radical-stroke index for Unicode 16.0.

The complete radical-stroke index is a stable part of this release of the Unicode Standard. It will never be updated.

Unicode Standard Annexes

STATUS: During the alpha review and beta review periods, links to individual UAXes (or UTSes) point to the proposed update for that document, if any. If no proposed update has been posted for the document, links point to the last published version of the document, for reference.

Links to the individual Unicode Standard Annexes for this version are available in Section I, List of Components below. The summary list of significant changes in the content of each Unicode Standard Annex for Version 16.0 can be found in Section G, Changes in the Unicode Standard Annexes below.

Unicode Character Database

Data files for Version 16.0 of the Unicode Character Database are available. The ReadMe.txt in that directory provides a roadmap to the functions of the various subdirectories. Detailed documentation about the data files can be found in UAX #44, Unicode Character Database. Zipped versions of the UCD for bulk download are available, as well.

Version References

Version 16.0.0 of the Unicode Standard should be referenced as:

The Unicode Consortium. The Unicode Standard, Version 16.0.0, (South San Francisco: The Unicode Consortium, 2024. ISBN 978-1-936213-34-4)
https://www.unicode.org/versions/Unicode16.0.0/

The terms “Version 16.0” or “Unicode 16.0” are abbreviations for the full version reference, Version 16.0.0.

The citation and permalink for the latest published version of the Unicode Standard is:

The Unicode Consortium. The Unicode Standard.
https://www.unicode.org/versions/latest/

A complete specification of the contributory files for Unicode 16.0 is found below in Section I, List of Components. For examples of how to cite particular portions of the Unicode Standard, see also the Reference Examples.

Errata

Errata incorporated into Unicode 16.0 are listed by date in a separate table. For corrigenda and errata after the release of Unicode 16.0, see the list of current Updates and Errata.

C. Stability Policy Update

No significant updates to the Character Encoding Stability Policies have occurred in the interval since the last release of the Unicode Standard.

D. Textual Changes and Character Additions

Changes in the Unicode Standard Annexes are listed in Section G.

Character Assignment Overview

5185 characters have been added. Most character additions are in new blocks, but there are also character additions to a number of existing blocks. For details, see the delta code charts.

New Blocks

The following blocks are newly defined in Version 16.0:

Range Block Name
105C0..105FF Todhri
10D40..10D8F Garay
11380..113FF Tulu-Tigalari
116D0..116FF Myanmar Extended-C
11BC0..11BFF Sunuwar
13460..1355F Egyptian Hieroglyphs Extended-A
16100..1613F Gurung Khema
16D40..16D7F Kirat Rai
1CC00..1CEBF Symbols for Legacy Computing Supplement
1E5D0..1E5FF Ol Onal

E. Conformance Changes

There are no new conformance requirements for the core specification in Unicode 16.0.

F. Changes in the Unicode Character Database

The detailed listing of all changes to the contributory data files of the Unicode Character Database for Version 16.0 can be found in UAX #44, Unicode Character Database. The changes listed there include character additions and property revisions to existing characters that will affect implementations. Some of the important impacts on implementations migrating from earlier versions of the standard are highlighted in Section M.

G. Changes in the Unicode Standard Annexes

In Version 16.0, some of the Unicode Standard Annexes have had significant revisions. The most important of these changes are listed below. For the full details of all changes, see the Modifications section of each UAX, linked directly from the following list of UAXes.

Unicode Standard Annex Changes
UAX #9
Unicode Bidirectional Algorithm
Textual clarification was added to Section 3.3.2, Explicit Levels and Directions.
UAX #11
East Asian Width
The summary was updated. ED7 in Section 4 was updated. Section 4.3 was added to explain that variation sequences can be considered when resolving ambiguous width. The last bullet in Section 5 was removed. The East_Asian_Width property value of some characters was changed from N to W.
UAX #14
Unicode Line Breaking Algorithm
The rules for line breaking of numbers, hyphens, and Simplified Chinese quotation marks were improved, bringing UAX #14 into alignment with the ICU implementation.
UAX #15
Unicode Normalization Forms
A new section was added regarding normalization contexts that require care in optimization. The conformance clause UAX15-C4 was clarified by explicit reference to the previously implied Stream-Safe Text Process.
UAX #24
Unicode Script Property
Documentation was added regarding the change in order of entries in ScriptExtensions.txt.
UAX #29
Unicode Text Segmentation
The definition of GCB=V was updated to include Kirat Rai vowels. The description of rules GB6 - GB8 was updated.
UAX #31
Unicode Identifiers and Syntax
A clarification was added that NFD must be applied before toNFKC_Casefold in order to correctly meet requirements UAX31-R4 and UAX-R5 with NFKC and full case folding. A reference to definition D147 of the Unicode Standard was added.
UAX #34
Unicode Named Character Sequences
No significant changes in this version.
UAX #38
Unicode Han Database (Unihan)
The relationship between the Equivalent_Unified_Ideograph property and the Unihan database was clarified. The sorting algorithm examples have been updated. A reference to the new RSIndex.txt data file was added. The delimiter of the kAccountingNumeric property was updated. Two new provisional properties, kFanqie and kZhuang, were added. The provisional kFrequency property was removed. The syntax and description of the kIRG_GSource and kPhonetic properties were updated. The description of the kPrimaryNumeric property was updated. The syntax and description of the kRSUnicode property were updated to accommodate a second non-Chinese simplified radical.
UAX #41
Common References for Unicode Standard Annexes
All references were updated for Unicode 16.0.
UAX #42
Unicode Character Database in XML
New code point attributes, values, and patterns were added for Unicode 16.0.
UAX #44
Unicode Character Database
The documentation was updated to describe the changes to the UCD for Version 16.0. Documentation was added for the new property Modifier_Combining_Mark. A clarification was added regarding the derivation of Numeric_Value from various Unihan properties. The definition of Indic_Conjunct_Break was updated for correctness. Clarifying text was added regarding stability issues for aliases.
UAX #45
U-Source Ideographs
No significant changes in this version.
UAX #50
Unicode Vertical Text Layout
Section 3.2.4 and Table 2 were added to explain the tailoring of fullwidth quotation marks.
UAX #53
Unicode Arabic Mark Rendering
This specification was changed from a UTR to a UAX for Unicode 16.0. The image for Example 3 was corrected. An implementation note was added after the description of the algorithm. A section was added for U+10EFC ARABIC COMBINING ALEF OVERLAY.
UAX #57
Unicode Egyptian Hieroglyph Database (Unikemet)
This UAX is new for Unicode 16.0, and describes the Unikemet.txt data file for the UCD.

H. Changes in Synchronized Unicode Technical Standards

There are also significant revisions in the Unicode Technical Standards whose versions are synchronized with the Unicode Standard. The most important of these changes are listed below. For the full details of all changes, see the Modifications section of each UTS, linked directly from the following list of UTSes.

Unicode Technical Standard Changes
UTS #10
Unicode Collation Algorithm
Table 18 in appendix B was extended to include a CTT Name column. Text was added to Appendix B to enable ISO/IEC 14651 to refer to the CTT tables published (starting with Unicode 16.0) on the Unicode website. A note was added to Section 10.1.3, Implicit Weights, explaining how the CTT for ISO/IEC 14651 uses the implicit weight calculated in Table 16.
UTS #39
Unicode Security Mechanisms
The definitions of skeleton and confusable were updated.
UTS #46
Unicode IDNA Compatibility Processing
The handling of UseSTD3ASCIIRules was simplified. The derivation of the Base Valid Set was updated, along with the derivation of the base exclusion set. Section 7 was removed.
UTS #51
Unicode Emoji
All references were updated for Unicode 16.0.

I. List of Components

This section lists the components of Version 16.0.0 of the Unicode Standard. The version numbering and the role of each component are explained in Versions of The Unicode Standard.

Core Specification
UnicodeStandard-16.0.pdf (size: 14 MB)
Code Charts and Radical-Stroke Index
Code Charts (size: 110 MB)
Radical-Stroke Index (size: 44 MB)
Radical-Stroke Index data
Unicode Standard Annexes
UAX #9: Unicode Bidirectional Algorithm
UAX #11: East Asian Width
UAX #14: Unicode Line Breaking Algorithm
UAX #15: Unicode Normalization Forms
UAX #24: Unicode Script Property
UAX #29: Unicode Text Segmentation
UAX #31: Unicode Identifiers and Syntax
UAX #34: Unicode Named Character Sequences
UAX #38: Unicode Han Database (Unihan)
UAX #41: Common References for Unicode Standard Annexes
UAX #42: Unicode Character Database in XML
UAX #44: Unicode Character Database
UAX #45: U-Source Ideographs
UAX #50: Unicode Vertical Text Layout
UAX #53: Unicode Arabic Mark Rendering
UAX #57: Unicode Egyptian Hieroglyph Database (Unikemet)
Unicode Character Database
https://www.unicode.org/Public/16.0.0/
Documentation
Index.txt
NamesList.html
ReadMe.txt
Core Data
ArabicShaping.txt
BidiBrackets.txt
BidiMirroring.txt
Blocks.txt
CJKRadicals.txt
CompositionExclusions.txt
DoNotEmit.txt
EastAsianWidth.txt
EmojiSources.txt
EquivalentUnifiedIdeograph.txt
HangulSyllableType.txt
IndicPositionalCategory.txt
IndicSyllabicCategory.txt
Jamo.txt
LineBreak.txt
NameAliases.txt
NamedSequences.txt
NamedSequencesProv.txt
NamesList.txt
NormalizationCorrections.txt
NushuSources.txt
PropertyAliases.txt
PropertyValueAliases.txt
PropList.txt
Scripts.txt
ScriptExtensions.txt
SpecialCasing.txt
StandardizedVariants.txt
TangutSources.txt
UnicodeData.txt
Unikemet.txt
VerticalOrientation.txt
Unihan Database (Unihan.zip)
Unihan_DictionaryIndices.txt
Unihan_DictionaryLikeData.txt
Unihan_IRGSources.txt
Unihan_NumericValues.txt
Unihan_OtherMappings.txt
Unihan_RadicalStrokeCounts.txt
Unihan_Readings.txt
Unihan_Variants.txt
Data for UAX #45
USourceData.txt
USourceGlyphs.pdf
USourceRSChart.pdf
Derived Data
CaseFolding.txt
DerivedAge.txt
DerivedCoreProperties.txt
DerivedNormalizationProps.txt
Extracted Data
DerivedBidiClass.txt
DerivedBinaryProperties.txt
DerivedCombiningClass.txt
DerivedDecompositionType.txt
DerivedEastAsianWidth.txt
DerivedGeneralCategory.txt
DerivedJoiningGroup.txt
DerivedJoiningType.txt
DerivedLineBreak.txt
DerivedName.txt
DerivedNumericType.txt
DerivedNumericValues.txt
Conformance Test Data
BidiCharacterTest.txt
BidiTest.txt
NormalizationTest.txt
Auxiliary Data for UAX #14 and UAX #29
GraphemeBreakProperty.txt
GraphemeBreakTest.txt
LineBreakTest.txt
SentenceBreakProperty.txt
SentenceBreakTest.txt
WordBreakProperty.txt
WordBreakTest.txt
Documentation for Auxiliary Data
GraphemeBreakTest.html
LineBreakTest.html
SentenceBreakTest.html
WordBreakTest.html
Emoji Data
emoji-data.txt
emoji-variation-sequences.txt

M. Implications for Migration

There are a significant number of changes in Unicode 16.0 which may impact implementations upgrading to Version 16.0 from earlier versions of the standard. The most important of these are listed and explained here, to help focus on the issues most likely to cause unexpected trouble during upgrades.

Core Specification Changes

The core specification has been completely revamped for Unicode 16.0.0. The text has all been converted to HTML, and has been deployed on a self-contained subsite. The text is no longer published as per-chapter pdf files, but prior bookmarked links into the chapter files resolve correctly to the new per-chapter HTML files. An archival pdf version of the entire core specification has been produced for this release, and looks and behaves very similarly to the corresponding archival pdf files for prior releases.

Script-related Changes

There are seven new scripts encoded in Unicode 16.0. Some of these scripts, such as Tulu-Tigalari, have complex layout.

There are 3,995 additional Egyptian hieroglyphs, particularly in support of Ptolemaic texts. There is also a new data file, Unikemet.txt, with source data, function, and phonetic information for hieroglyphs, including the previously encoded repertoire. See the new UAX #57, Unicode Egyptian Hieroglyph Database (Unikemet) for details.

General Character Property Issues

  • Starting with U+11F5A KAWI SIGN NUKTA in Unicode 16.0, newly encoded nukta characters use Canonical_Combining_Class (ccc) 0 or positional ccc values such as 220 or 230. Nukta characters encoded in earlier versions typically, but not always, use ccc=7. Software that needs to identify nuktas in Brahmic scripts should check for Indic_Syllabic_Category=Nukta.
  • The ScriptExtensions.txt data file has had a format change for 16.0. Each individual entry is formatted as before, but the overall order of entries has been changed to code point order.

Normalization Behavior

Several characters have been added in Unicode 16.0 which have subtle implications for certain optimizations of normalization. These do not change the normalization algorithm, but have implications for the derivation and use of Quick_Check properties for optimization of normalization form detection. See UAX #15 for details.

Segmentation

There has been a change of linebreaking affecting U+2018 LEFT SINGLE QUOTATION MARK and similar directional quotation marks in specific East Asian contexts to correct for issues in simplified Chinese line breaking, as well as other rule changes to better align the specification with the behavior of ICU. See UAX #14 for details.

There has also been a change to the Grapheme_Cluster_Break property data, extending the use of GCB=V to apply to certain non-Hangul vowels, and in particular for Kirat Rai vowels. This change finesses the behavior of the segmentation of grapheme cluster breaks in such cases, while respecting normalization requirements and canonical equivalence. Implementations should take note that GCB=V and HST=V are no longer coextensive. See UAX #29 for details.

Numeric Property Issues

There are eight new sets of decimal digits added in Unicode 16.0. Five of these sets are for newly encoded scripts: Garay, Sunuwar, Gurung Khema, Kirat Rai, and Ol Onal. Two sets of digits constitute more region-specific digit sets for the Myanmar script. Finally, there is one additional set, consisting of stylistically outlined digits, intended for support of legacy computer symbol sets for terminal emulations. Implementations of numeric values and numeric formatting should take these new sets into account.

CJK/Unihan Changes

  • Some kRSUnicode values now include triple-apostrophe radicals.
  • One old provisional property has been removed.
  • Two new provisional properties have been added.

See UAX #38, Unicode Han Database (Unihan) for further details on these changes, especially Section 4.2, Listing by Date of Addition to the Unicode Standard, and Section 4.3, Listing by Location within Unihan.zip. UAX #38 also has updated regex values for three Unihan properties. For the changes associated with the triple-apostrophe radicals, see:

Standardized Variation Sequences

  • Four unused Egyptian hieroglyph variation sequences have been removed from the data. Ten other new sequences have been added to deal with various rotations of previously encoded hieroglyphs.
  • Eight variation sequences have been added for curly quotation marks (U+2018, U+2019, U+201C, U+201D) to deal with full-width layout considerations in Chinese text.

UTS #46 (IDNA) Changes

There have been a number of changes to the specification, in general to bring it forward to better align with current practice and to simplify no longer needed transitional features.

  • The text of UTS #46 has been changed to simplify the base exclusion set and adjust the derivation of the mappings in IdnaMappingTable.txt. Previously, the base exclusion set had been derived from differences between IDNA2003 data and the principles of UTS #46. It is no longer necessary to disallow characters on the basis of differences from IDNA2003, so the base exclusion has been radically simplified.
  • The handling of UseSTD3ASCIIRules has been simplified. Conditional data involving disallowed_STD3_* Status values has been replaced with simple checking for a subset of ASCII characters in the Validity Criteria. This simplifies the data format and data lookup, makes standard UseSTD3ASCIIRules=true handling consistent with custom UseSTD3ASCIIRules, and avoids unnecessarily disallowing certain labels that contain disallowed_STD3_mapped characters but which do not contain non-LDH ASCII characters when the mappings are applied.
  • In Section 4, Processing, if the label starts with “xn--”, and the conversion from Punycode yields either an empty label or an all-ASCII label, then an error is now recorded, consistent with IDNA2008.
  • In the test data file, there is a small addition to the syntax: "" means an empty string. There are also other test data corrections and improvements. For details see Section 8, Conformance Testing, Migration.

Changes to Code Charts

  • There are a number of Han glyph updates, particularly for CJK Unified Ideographs Extension B.
  • Other glyph updates are listed explicitly in the delta charts index page.
  • There are also a very large number of J-Source (Japanese) additions to the CJK charts. These extensions are not individually highlighted in the code charts.
  • The two code charts for Egyptian hieroglyphs contain extensive functional and phonetic information derived from the new data file, Unikemet.txt.

Collation-related Changes

A significant new change for DUCET in Unicode 16.0 involves moving the non-decimal digits to sort after the main decimal digits. This change greatly reduces the superfluous differences between DUCET and the CLDR base tailoring of DUCET.

There has also been a small fix to correct the ordering for U+312C BOPOMOFO LETTER GN.

Emoji Changes

For details about emoji changes, see the Unicode 16.0 emoji charts and Emoji Recently Added, v16.0.

 


Access to Copyright and terms of use