Замена символов с диакритическими знаками / umlauted на их неукрашенные аналоги в C #

Дубликат 249087

У меня есть несколько адресов, сгенерированных пользователями, которые могут содержать символы с диакритическими знаками. Каков наиболее эффективный (то есть общий) способ (помимо простой замены) автоматически преобразовывать любые такие символы в их ближайший английский эквивалент?

Например. любой из àâãäå станет a

æ станет двумя отдельными буквами ае

ç станет c

любой из èéêë станет e

и т.д. для всех возможных вариантов букв (желательно без поиска и кодирования поиска для каждой диакритической формы буквы).

(Примечание: я должен передать эти адреса стороннему программному обеспечению, которое не может печатать ничего, кроме английских символов. Я бы предпочел, чтобы программное обеспечение могло их обрабатывать, но я не могу это контролировать.)

РЕДАКТИРОВАТЬ: Неважно ... Нашел ответ [здесь] [2]. Он появился в разделе "Связанные" справа от вопроса после того, как я разместил его, но не при моем предыдущем поиске или в качестве предложения перед публикацией. Хм. В любом случае я добавил к другому вопросу тег «диакритические знаки».

РЕДАКТИРОВАТЬ 2: Боже! Кто проголосовал за это -1 после того, как я его закрыл?


person Community    schedule 20.12.2008    source источник


Ответы (1)


Просто собирался выложить ту же ссылку :-)

Похоже, вы уже это делаете, но я бы порекомендовал вам сохранить исходную строку для отображения в вашем приложении и делать это только для сторонних материалов. Люди раздражаются, если не думают, что их настоящее имя важно :-)

person devstuff    schedule 20.12.2008
comment
Ах, ну, это будет невозможно .... Программа, по которой я передаю адреса для печати почтовых этикеток :) - person Andrew Rollings; 20.12.2008