
Normalize changes Unicode character sequences. The string type's buffer is represented in Unicode—Normalize affects how the Unicode characters are ordered. We explore how the representations of string data change with the Normalize method.

To start, this program introduces a string with an accent on the lowercase a (á). Next, we call Normalize with no parameters, and then Normalize with the parameters NormalizationForm.FormD, FormKC, and FormKD on the same input string. We print the resulting strings to the screen as we go along.
This C# example program shows the Normalize method. Normalize is explained in detail.
Program that uses Normalize method [C#]
using System;
using System.Text;
class Program
{
static void Main()
{
const string input = "á";
string val2 = input.Normalize();
Console.WriteLine(val2);
string val3 = input.Normalize(NormalizationForm.FormD);
Console.WriteLine(val3);
string val4 = input.Normalize(NormalizationForm.FormKC);
Console.WriteLine(val4);
string val5 = input.Normalize(NormalizationForm.FormKD);
Console.WriteLine(val5);
}
}
Output
á
a '
á
a 'Parameterless Normalize. The first call to Normalize, with no parameters, uses the NormalizationForm.FormC enumerated constant in its implementation.
Output. The four lines printed to the Console have two forms: the "a" with the accent on top, and also an ASCII a with a ' character following it. In FormD and FormKD, the ' character follows the accented letter.

So why would the Normalize method be important on the string type? Mainly, it is useful for interoperability purposes. If you have to interact with another program that uses Unicode in a specific normalization form, it would be important to call Normalize. There is no reason to call Normalize if you are just using ASCII characters or if you are not interoperating with another Unicode form.

The Normalize method on the C# string type has an important purpose, mainly to provide interoperation with other systems. It is not one of the most commonly needed string methods, but reveals an important detail of the string implementation. Please see also the IsNormalized method.
IsNormalized Method String Type