Quotidien Shaarli

Tous les liens d'un jour sur une page.

February 20, 2024

How to replace accented characters with plain characters using C# - Jonathan Crozier
thumbnail

public static class StringExtensions
{
/// <summary>
/// Removes diacritics from the specified text.
/// </summary>
/// <param name="text">The text to remove diacritics from</param>
/// <returns>A new version of the text with diacritics removed</returns>
public static string RemoveDiacritics(this string text)
{
string normalizedString = text.Normalize(NormalizationForm.FormD);

    var stringBuilder = new StringBuilder(normalizedString.Length);

    foreach (char c in normalizedString)
    {
        if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
        {
            stringBuilder.Append(c);
        }
    }

    return stringBuilder.ToString();
}

}

pour aller plus loin
string diacriticCharacterText = "ÆßðáèîõüЌ؜";
string plainCharacterText = new string(diacriticCharacterText
.RemoveDiacritics()
.Where(char.IsAscii)
.ToArray());