Стандарт Unicode

Версия Unicode

Основные выпуски стандарта Unicode, каждый добавляющий новые символы, письменности и функции. Текущая версия — Unicode 16.0 (сентябрь 2025).

· Updated

What is a Unicode Version?

A Unicode version is a numbered, dated release of the Unicode Standard that may add new characters, scripts, blocks, emoji, or property values, and may update algorithms, documentation, or normalization tables. Each version is identified by a major.minor numbering scheme (e.g., 15.0, 15.1, 16.0), and versions are published on a roughly annual cycle.

Understanding Unicode versions matters for software developers because: - An application may not support characters added in versions newer than its Unicode library - Character properties can change between minor versions (though stability policies limit this) - Emoji added in a new version will display as boxes ("tofu") on devices with older Unicode support

Version History Highlights

Version Year Notable Additions
1.0 1991 First release — 7,129 characters, 24 scripts
2.0 1996 Extended to 17 planes; surrogate pairs standardized
3.0 1999 49,194 characters; Braille, Ethiopic, Cherokee
4.0 2003 Cypriot, Gothic, Shavian
5.0 2006 NKo, Balinese, Coptic
6.0 2010 Emoji officially added (722 characters)
7.0 2014 Pictographic symbols, chess symbols
8.0 2015 Skin tone modifiers for emoji
10.0 2017 Bitcoin sign (₿), 56 emoji
12.0 2019 61 new emoji including gender-neutral options
13.0 2020 55 new emoji; Chorasmian, Dives Akuru scripts
14.0 2021 37 new emoji; Toto, Vithkuqi scripts
15.0 2022 20 new emoji; Kawi, Nag Mundari
15.1 2023 Minor update; 627 new CJK ideographs
16.0 2024 154,998 total characters; Garay, Sunuwar scripts

Major vs Minor Versions

Unicode uses a two-level versioning scheme:

  • Major versions (e.g., 15.0 → 16.0): Can add new scripts, new blocks, new characters, and may update normalization data
  • Minor versions (e.g., 15.0 → 15.1): More limited — typically add characters to existing blocks, fix documentation errors, or update property values for already-assigned characters. The Unicode Stability Policy restricts what can change in minor versions.

Checking Unicode Version in Code

import sys
import unicodedata

# Python's supported Unicode version
print(sys.version)                    # includes Python version
print(unicodedata.unidata_version)    # e.g., "15.0.0"

# Check if a character was assigned in the current version
name = unicodedata.name("😀", "UNKNOWN")
print(name)  # "GRINNING FACE"
// JavaScript environments don't expose Unicode version directly
// but Intl.Collator and RegExp /u flag use the engine's Unicode version

// In V8 (Node.js), check:
// node --version alongside ICU version in process.versions.icu
console.log(process.versions.unicode); // e.g., "15.0"

Version Compatibility Issues

The "tofu" problem: Emoji added in Unicode 15.0 display as a box or question mark on devices that shipped before version 15.0 support was added to their OS. This is most common on older Android versions.

Library lag: Python 3.11 uses Unicode 15.0; Python 3.13 uses Unicode 15.1. If your application processes text with characters from a version newer than your Python's Unicode library, those characters may be misclassified.

Normalization stability: Once a character's decomposition is defined, it cannot change. This means normalization form conversions are version-stable for all previously assigned characters.

Quick Facts

Property Value
Current version 16.0 (September 2024)
Total assigned (v16.0) 154,998 characters
New scripts in v16.0 Garay, Sunuwar, Gurung Khema, Kirat Rai, Ol Onal
Release cadence Approximately annual
Version format major.minor (e.g., 15.1)
Stability guarantee Assigned characters never removed or reassigned
Emoji count (v16.0) ~3,790 (with all variations/sequences)

Связанные термины

Ещё в Стандарт Unicode

Basic Multilingual Plane (BMP)

Плоскость 0 (U+0000–U+FFFF), содержащая наиболее употребительные символы, включая латиницу, греческий, кириллицу, CJK, …

CJK

Китайский, японский и корейский — собирательный термин для унифицированного блока иероглифов хань …

Han Unification

The process of mapping Chinese, Japanese, and Korean ideographs that share a …

Hangul Jamo

The individual consonant and vowel components (jamo) of the Korean Hangul writing …

ISO 10646 / Universal Character Set

Международный стандарт (ISO/IEC 10646), синхронизированный с Unicode, определяющий тот же репертуар символов …

Unicode

Универсальный стандарт кодирования символов, присваивающий уникальный номер (code point) каждому символу во …

Unicode Character Database (UCD)

Машиночитаемая коллекция файлов данных, определяющих все свойства символов Unicode, включая UnicodeData.txt, Blocks.txt, …

Unicode Standard Annex (UAX)

Normative or informative documents that are integral parts of the Unicode Standard. …

Unicode Technical Report (UTR)

Informational documents published by the Unicode Consortium covering specific topics like security …

Абстрактный символ

Единица информации для организации, управления или представления текстовых данных — концептуальная сущность …