C# 入門 & 実践 / C sharp
4-18. 文字列操作 - 4 - 正規化
・文字列が特定の正規形に正規化されているかを判定するには、IsNormalized メソッドを使用。特定の正規形に正規化された文字列を作成するには、Normalize メソッドを使用。
Unicode のコードを正規化するそうです!
とりあえず、C、D、KC、KDという正規化形式があるそうで。
同じ正規化を行っていると比較がちゃんと行くそうで
逆に違う正規化を行うとどうなんでしょう?
static void Main()
{
string str = "ぱぴぷぺぽは①ヴばは゛";
// 正規化確認
Console.WriteLine("C: 完全標準分解を使用してUnicode 文字列を正規化した後、可能な場合は、シーケンスを主要な複合文字で置換することを示します。");
// 通常は C にされているのか?
if (str.IsNormalized(NormalizationForm.FormC) )
{
Console.WriteLine("C:{0}" , str);
}
Console.WriteLine("D: 完全標準分解を使用してUnicode 文字列を正規化したことを示します。");
string x = str.Normalize(NormalizationForm.FormD);
if (x.IsNormalized(NormalizationForm.FormD))
{
Console.WriteLine("D:{0}", x);
}
Console.WriteLine("KC: 完全互換分解を使用してUnicode 文字列を正規化した後、可能な場合は、シーケンスを主要な複合文字で置換することを示します。");
x = str.Normalize(NormalizationForm.FormKC);
if (x.IsNormalized(NormalizationForm.FormKC))
{
Console.WriteLine("KC:{0}", x);
}
Console.WriteLine("KD: 完全互換分解を使用してUnicode 文字列を正規化したことを示します。");
x = str.Normalize(NormalizationForm.FormKD);
if (x.IsNormalized(NormalizationForm.FormKD))
{
Console.WriteLine("KD:{0}", x);
}
}
C: 完全標準分解を使用してUnicode 文字列を正規化した後、可能な場合は、シーケンス
を主要な複合文字で置換することを示します。
C:ぱぴぷぺぽは①ヴばは゛
D: 完全標準分解を使用してUnicode 文字列を正規化したことを示します。
D:は?ひ?ふ?へ?ほ?は①ウ?は?は゛
KC: 完全互換分解を使用してUnicode 文字列を正規化した後、可能な場合は、シーケンス
を主要な複合文字で置換することを示します。
KC:ぱぴぷぺぽは1ヴばは ?
KD: 完全互換分解を使用してUnicode 文字列を正規化したことを示します。
KD:は?ひ?ふ?へ?ほ?は1ウ?は?は ?
とりあえずこういうことらしいです。
4-17. 文字列操作 - 3 - フォーマット, sprintf «
4. C# 入門 Level 2 »
4-19. 正規表現 / RegularExpressions - 1 - 検索 / MatchCollection
C# 入門 & 実践 / C sharp