Как я могу нормализовать шрифты? - PullRequest
0 голосов
/ 16 марта 2019

Пользователи иногда используют странные символы ASCII в программе, и мне было интересно, есть ли способ «нормализовать» это.

Таким образом, в основном, если вход ᴀʙᴄᴅᴇꜰɢ, выход будет ABCDEFG. Есть ли где-то словарь, который делает что-то подобное? Если нет, есть ли лучший способ, чем просто сделать что-то вроде str.replace("ᴀ", "A") для всех разных «шрифтов»?

Это не вопрос конкретного языка - если чего-то такого не существует, думаю, следующим шагом будет создание словаря самостоятельно.

Ответы [ 2 ]

2 голосов
/ 16 марта 2019

Ваш пример содержит символы Юникода, а не символы ASCII. Нормализация Unicode ( FAQ ) - это большой и сложный предмет, со многими классами эквивалентности различий в символах, в зависимости от того, что вы пытаетесь сделать.

1 голос
/ 17 марта 2019

Да.

Кстати: технические термины: латинские заглавные буквы из блока C0 Controls и Basic Latin и латинские буквы маленьких заглавных букв из блока Phonetic Extensions.

В любом случае, общая тема вашего вопроса: Unicode confusables . Ссылка для отображения. Uncode.org содержит больше материалов о путаницах и прочем Unicode.

(Нормализация всегда учитывается при обработке текста в Юникоде, но это не имеет особого отношения к этой проблеме.)

...