Unicode 標準

Unicode 安定性ポリシー

一度割り当てられた文字のコードポイントと名前は絶対に変更されないことを保証するポリシー。プロパティは改訂される場合がありますが、割り当ては永続的です。

· Updated

What is the Unicode Stability Policy?

The Unicode Stability Policy is a set of formal commitments by the Unicode Consortium guaranteeing that certain properties and assignments in the Unicode Standard will not change in ways that would break existing implementations. These policies protect developers who build software on Unicode: you can rely on the behavior of characters you support today remaining consistent in future Unicode versions.

Stability policies are published on unicode.org and are considered binding. They were formalized over several Unicode versions and have become more comprehensive as the standard matured.

Core Stability Guarantees

Character Assignment Stability

Once a code point is assigned to a character, that assignment is permanent: - No character is ever unassigned from its code point - No code point is ever reassigned to a different character - A Unicode 1.0 file can be decoded correctly by a Unicode 16.0 implementation

Character Name Stability

Normative character names are immutable. If a name was published with a typo or error (e.g., U+FE18's name has a documented misspelling "BRAKCET" instead of "BRACKET"), the wrong name cannot be changed. Instead, a formal alias is added via NameAliases.txt, and applications are expected to use both the name and its aliases.

Normalization Stability (since Unicode 4.1)

The canonical decomposition of any character assigned before Unicode 4.1 is fixed permanently. This means: - NFC/NFD results for pre-4.1 characters will never change - Software can normalize text and store it without re-normalizing after Unicode updates - New characters (post-4.1) may have decompositions, but once published they are also stable

import unicodedata
# This NFC result will be the same in all future Unicode versions
# for characters assigned before Unicode 4.1
print(unicodedata.normalize("NFC", "caf\u0065\u0301"))  # "café"

Identifier Stability (since Unicode 5.1)

Code points in ID_Start and ID_Continue properties do not lose those properties. This ensures that identifiers valid in one Unicode version remain valid in future versions.

Case Mapping Stability (partial)

Simple case mappings (uppercase, lowercase, titlecase) do not change for existing characters. Special case mappings (context-dependent) may be updated, but simple cases are stable.

Bidi Stability (Unicode 6.3+)

The bidi class of assigned characters does not change in ways that would alter the visual presentation of existing text.

What Is NOT Stable

The Unicode Stability Policy does not guarantee everything:

Property Stable? Notes
Character assignment Yes Never revoked
Character name Yes Errors become aliases
Normalization (pre-4.1) Yes Fixed in Unicode 4.1
General category Mostly Won't change in breaking ways
Emoji presentation No Can change between versions
Script property Mostly New scripts may reclassify
Default ignorable Partially May change for unassigned

Practical Impact for Developers

Text storage: Because character assignments and normalization are stable, you can safely store Unicode text in databases. A code point stored today will mean the same character forever.

Identifier parsing: Programming languages using ID_Start/ID_Continue for identifier validation (Python, JavaScript, Rust) benefit from identifier stability — valid identifiers remain valid.

Emoji rendering: Emoji properties are not fully stable — an emoji can gain or lose a Emoji_Presentation flag, changing its default rendering. This is why platform emoji updates sometimes appear unexpected.

Normalization in indexes: Because NFC/NFD results are stable for assigned characters, you can normalize text before indexing it and rely on those indexes remaining valid after Unicode updates.

Quick Facts

Property Value
Published by Unicode Consortium (unicode.org/policies/)
Character assignment stability Permanent — no changes ever
Name stability Permanent — errors become aliases
Normalization stability Since Unicode 4.1
Identifier stability Since Unicode 5.1
Bidi stability Since Unicode 6.3
Emoji presentation stability Not guaranteed
Key beneficiaries Programming languages, databases, text search

関連用語

Unicode 標準 のその他の用語

CJK(漢字・かな・ハングル)

中国語・日本語・韓国語 — Unicodeにおける統合漢字ブロックと関連スクリプトをまとめた総称。CJK統合漢字は20,992文字以上を含みます。

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 / 万国文字集合

Unicodeと同期している国際標準(ISO/IEC 10646)で、同じ文字目録とコードポイントを定義しますが、Unicodeの追加アルゴリズムやプロパティは含みません。

Unicode

あらゆる文字システムのすべての文字に固有の番号(コードポイント)を割り当てる普遍的文字エンコーディング規格。バージョン16.0には154,998個の割り当て済み文字が含まれます。

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 …

Unicode コンソーシアム

Unicode標準を開発・維持する非営利団体。Apple・Google・Microsoft・Metaなど多くの企業が会員です。

Unicode スカラー値

サロゲートコードポイント(U+D800〜U+DFFF)を除くすべてのコードポイント。実際の文字を表すことができる有効な値の集合で、合計1,112,064個です。

Unicode バージョン

新しい文字・文字体系・機能を追加するUnicode標準の主要リリース。現在のバージョンはUnicode 16.0(2025年9月)です。