среда, 2 октября 2019 г.

Коротко. Юникод

Вчерне доделал индексацию и поиск в юникодных текстах. Даже формулы ищутся. Много всяких приколов вылезло. Особенно со смешением кодировок. Например есть "кириллический игрек Y". Или альфа вместо А в русских словах. Умляуты, там где не надо. Штрихи оформленные маленькими буквами I в виде надстрочного индекса. Ну и всякое такое. Запрограммировал всё в "функциональном стиле". Вход преобразуется функтором, ну и так по цепочке. Конвейер.

Сделал функцию - ParseByFunctors.
Принимает строку и набор функторов, которые эту строку преобразуют в другую строку или даже набор строк.

Детали может быть позже.

P.S. Например есть слово Yamaha - написано вроде так. А а не ищется. Начинаем разбираться - НИ ОДНОГО латинского символа там нет.
Есть кириллическая Y.
Кириллические A.
Татарская (!) h.
Ну и да - соврал. Один латинский - m.
ОДИН латинский - есть. Ну и тому подобное. А в документе - Yamaha.

А IIV. Римская цифра. Где одна из I это не латинская, а греческая буква.

А заглавная АЛЬФА вместо А?

Или вроде "греческая сигма", заглавная. Ан нет. Есть похожая ЛАТИНСКАЯ буква - называется почти как немецкая "эсцет".
"Латинская Эш" - вот она как называется.

А ещё например метры квадратные то м2 - с верхним индексом. То м и специальный символ - верхняя 2.

Или скажем текст "запылился". Искажения. И получилось Z с черточкой, а не просто Z.

Или слово дОлжным, где над О ударение в виде штриха. Так - в первоисточнике.

А такие штрихи ещё и разные бывают.

Или о-умляут вместо О в русском слове, потому что на бумаге была грязь.

Или слово РОССИЯ, где русские только И и Я. Все остальные - латинские, а то и вообще греческие.

Комментариев нет:

Отправить комментарий