Как преобразовать текст Unicode, который выглядит как английский в ASCII? - PullRequest
1 голос
/ 16 января 2012

У меня есть текст типа «Ранее», который выглядит на английском языке, но содержит символы, не входящие в ASCII:

enter image description here

Какой самый простой способ преобразовать его в английскийтекст (например, «P» будет латинской заглавной буквой P)?

Для простоты предположим, что неанглийские символы - русские.Но более общее решение будет высоко ценится!

Предпочтительные языки: Javascript, Ruby, Bash script.

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Хотя некоторые буквы кириллицы (и греческие) идентичны с некоторыми латинскими буквами в графическом виде (т. Е., Вероятно, нет разницы ни в одном шрифте, который содержит оба), между ними не определено формальное отображение.Таким образом, вам необходимо определить отображение самостоятельно.Для русского языка количество таких букв довольно ограничено, поэтому речь идет о небольшой таблице соответствия.Но если вы хотите охватить весь Unicode, существует большое количество двойников и почти двойников, поэтому самой сложной задачей будет решить, какие символы достаточно похожи.

1 голос
/ 16 января 2012

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

Просто зациклите строку и для каждого символа посмотрите, есть ли он в словаре, и если да, замените его символом замены, хранящимся в словаре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...