Arpalesa Blogs

Categorieën

Op datum

Uitgelicht

Bijzonder diakrieten omzetten naar ASCII

Onderstaande string extension zorgt ervoor dat elke string met een .PlainASCII zal worden omgezet naar een string waar alleen nog maar de leesbare a-Z variant in zal zitten, dus éèë worden vervangen met e, íïì met i, etc. Je kan dit natuurlijk ook oplossen door een vervangende lijst op te nemen en dan een replace, of zelfs met een regular expression, maar de normalize is tot nu toe de mooiste oplossing die ik hiervoor ben tegengekomen:

 

    static class StringExtensions
    {

        public static string PlainASCII(this string stringToConvert)
        {
            var temp = stringToConvert.Normalize(NormalizationForm.FormD);
            IEnumerable filtered = temp;
            filtered = filtered.Where(c => char.GetUnicodeCategory(c) != System.Globalization.UnicodeCategory.NonSpacingMark);
            return new string(filtered.ToArray());
        }
    }

Categories: Programmeren, .NET
You need to login in order to comment