NormalizationForm Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje typ normalizace, která se má provést.
public enum class NormalizationForm
public enum NormalizationForm
[System.Runtime.InteropServices.ComVisible(true)]
public enum NormalizationForm
type NormalizationForm =
[<System.Runtime.InteropServices.ComVisible(true)>]
type NormalizationForm =
Public Enum NormalizationForm
- Dědičnost
- Atributy
Pole
FormC | 1 | Označuje, že řetězec Unicode je normalizován pomocí úplné kanonické rozkladu, následovaný nahrazením sekvencí jejich primárními složenými, pokud je to možné. |
FormD | 2 | Označuje, že řetězec Unicode je normalizován pomocí úplné kanonické rozkladu. |
FormKC | 5 | Označuje, že řetězec Unicode je normalizován pomocí úplné kompatibility rozklad, následovaný nahrazením sekvencí jejich primárními složenými, pokud je to možné. |
FormKD | 6 | Označuje, že řetězec Unicode je normalizován pomocí plného rozkladu kompatibility. |
Poznámky
Některé sekvence Unicode jsou považovány za ekvivalentní, protože představují stejný znak. Například následující jsou považovány za ekvivalentní, protože některé z nich lze použít k reprezentaci "ắ":
"\u1EAF" (U+1EAF MALÉ PÍSMENO LATINKY A S BREVE A AKUTNÍ)
"\u0103\u0301" (U+0103 MALÉ PÍSMENO LATINKY A S BREVE + U+0301 KOMBINOVÁNÍ AKUTNÍHO PŘÍZVUKU)
"\u0061\u0306\u0301" (U+0061 MALÉ PÍSMENO LATINKY A + U+0306 KOMBINOVÁNÍ BREVE + U+0301 KOMBINOVÁNÍ AKUTNÍHO ZVÝRAZNĚNÍ)
Nicméně, ordinální, tj. binární, porovnání považují tyto sekvence za odlišné, protože obsahují různé hodnoty kódu Unicode. Před provedením porovnání řad musí aplikace normalizovat tyto řetězce, aby je rozložily do svých základních součástí.
Každý složený znak unicode je mapován na více základních sekvencí jednoho nebo více znaků. Proces rozkladu nahradí složené znaky v řetězci jejich základní mapování. Úplné dekompozice rekurzivně provede toto nahrazení, dokud žádný ze znaků v řetězci nelze dále rozložit.
Unicode definuje dva typy rozkladů: rozklad kompatibility a kanonický rozklad. Při rozkladu kompatibility může dojít ke ztrátě informací o formátování. V kanonickém rozkladu, což je podmnožina rozkladu kompatibility, se informace o formátování zachovají.
Dvě sady znaků se považují za kanonické ekvivalence, pokud jsou jejich úplné kanonické rozklady identické. Stejně tak se u dvou množin znaků považuje za ekvivalence kompatibility, pokud jsou jejich úplné rozklady kompatibility identické.
Další informace o normalizaci, rozkladech a ekvivalenci najdete v článku Standardní příloha unicode č. 15: Formuláře normalizace unicode v unicode.org.