Рассматривать символ Юникод плюс диакритический знак как один символ? - PullRequest
2 голосов
/ 23 августа 2010

В моем приложении VB.NET я сравниваю слова, которые записаны с использованием IPA, многие из которых имеют много диакритических знаков.В одном из сравнений я сравниваю слова символ за символом.Но когда я перебираю символы, диакритические знаки выделяются в виде отдельных символов (как и следовало ожидать, так как это Unicode):

o`ku`ku`

Однако для этих целей символ au отличается от au плюс ударениеэтой программы и должен быть выделен.

Есть ли хороший способ перебирать строки Юникода таким образом, чтобы символы и их акценты считались одним символом?Я пытаюсь избежать жесткого кодирования всех комбинаций, которые считаются одним символом.

Edit:

Метод Normalize () работает для символов с простыми диакритическими знаками, которые имеютодносимвольное представление Unicode, такое как большинство акцентированных гласных.Однако это не работает для более непонятных символов, таких как и .

1 Ответ

3 голосов
/ 23 августа 2010

Вот что делает string.Normalize (). Вы можете использовать переопределение Normalize (NormalizationForm) для явного управления этим.

...