Quick note

How to remove diacritics (accents) from a string?

public static string RemoveDiacritics(this string input)
{
    var stFormD = input.Normalize(NormalizationForm.FormD);
    var len = stFormD.Length;
    var sb = new StringBuilder();
    for (int i = 0; i < len; i++)
    {
        var uc = System.Globalization.CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);
        if (uc != System.Globalization.UnicodeCategory.NonSpacingMark)
        {
            sb.Append(stFormD[i]);
        }
    }
    return (sb.ToString().Normalize(NormalizationForm.FormC));
}

Bonus track

How to remove in TSQL (Microsoft SQL Server)

SELECT 'àéêöhello!' Collate SQL_Latin1_General_CP1253_CI_AI

See you soon! :D

Remove diacritics from a string

Author

Lluis Franco

Publish Date

04 - 16 - 2014