static void AlexRemoveDiacritics(Args _args) { str strInput = 'ÁÂÃÄÅÇÈÉàáâãäåèéêëìíîïòóôõ£ALEX'; System.String input = strInput; str retVal; int i; System.Char c; System.Text.NormalizationForm FormD = System.Text.NormalizationForm::FormD; str normalizedString = input.Normalize(FormD); System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); for (i = 1; i <= strLen(normalizedString); i++) { c = System.Char::Parse(subStr(normalizedString, i, 1)); if (System.Globalization.CharUnicodeInfo::GetUnicodeCategory(c) != System.Globalization.UnicodeCategory::NonSpacingMark) { stringBuilder.Append(c); } } input = stringBuilder.ToString(); input = input.Normalize(); retVal = input; info(strFmt("Before: '%1'", strInput)); info(strFmt("After: '%1'", retVal)); }
I did not come up with this code, I merely adapted it from http://www.codeproject.com/Tips/410074/Removing-Diacritics-from-Strings who adapted it from somewhere another person who deleted their blog. It is still very useful.