Unicode 安定性ポリシー
一度割り当てられた文字のコードポイントと名前は絶対に変更されないことを保証するポリシー。プロパティは改訂される場合がありますが、割り当ては永続的です。
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 標準 のその他の用語
中国語・日本語・韓国語 — Unicodeにおける統合漢字ブロックと関連スクリプトをまとめた総称。CJK統合漢字は20,992文字以上を含みます。
The process of mapping Chinese, Japanese, and Korean ideographs that share a …
The individual consonant and vowel components (jamo) of the Korean Hangul writing …
Unicodeと同期している国際標準(ISO/IEC 10646)で、同じ文字目録とコードポイントを定義しますが、Unicodeの追加アルゴリズムやプロパティは含みません。
あらゆる文字システムのすべての文字に固有の番号(コードポイント)を割り当てる普遍的文字エンコーディング規格。バージョン16.0には154,998個の割り当て済み文字が含まれます。
Normative or informative documents that are integral parts of the Unicode Standard. …
Informational documents published by the Unicode Consortium covering specific topics like security …
Unicode標準を開発・維持する非営利団体。Apple・Google・Microsoft・Metaなど多くの企業が会員です。
サロゲートコードポイント(U+D800〜U+DFFF)を除くすべてのコードポイント。実際の文字を表すことができる有効な値の集合で、合計1,112,064個です。
新しい文字・文字体系・機能を追加するUnicode標準の主要リリース。現在のバージョンはUnicode 16.0(2025年9月)です。