Política de estabilidade Unicode
Garantia de que, uma vez atribuído um caractere, seu ponto de código e nome nunca mudam. As propriedades podem ser refinadas, mas as atribuições são permanentes.
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 |
Termos Relacionados
Mais em Padrão Unicode
Plano 0 (U+0000–U+FFFF), contendo os caracteres mais usados, incluindo latino, grego, cirílico, …
Unidade de informação usada para organizar, controlar ou representar dados textuais — …
Ponto de código ao qual foi atribuída uma designação de caractere em …
Chinês, Japonês e Coreano — o termo coletivo para o bloco de …
Organização sem fins lucrativos que desenvolve e mantém o Padrão Unicode. Os …
O intervalo completo de possíveis pontos de código Unicode: U+0000 a U+10FFFF …
The process of mapping Chinese, Japanese, and Korean ideographs that share a …
The individual consonant and vowel components (jamo) of the Korean Hangul writing …
Norma internacional (ISO/IEC 10646) sincronizada com o Unicode, definindo o mesmo repertório …
Pontos de código permanentemente reservados para uso interno (66 no total): U+FDD0–U+FDEF …