One possible way is to normalize it in a form where the letters and their diacritics are written as several code points. Then check if you have a letter with accents.
Adapting from How to remove diacritical characters (accents) from a string in .NET? , you can normalize with Normalize(NormalizationForm.FormD) and check diacritics with UnicodeCategory.NonSpacingMark .
bool IsLetterWithDiacritics(char c) { var s = c.ToString().Normalize(NormalizationForm.FormD); return (s.Length > 1) && char.IsLetter(s[0]) && s.Skip(1).All(c2 => CharUnicodeInfo.GetUnicodeCategory(c2) == UnicodeCategory.NonSpacingMark); }
CodesInChaos
source share