Xpoint
   [напомнить пароль]

Очистить текст от умляутов

Метки: [без меток]
2008-01-10 10:48:30 [обр] Алексей В. Иванов(25/2861)[досье]

Люди, помогите, если кто сталкивался.
Есть база городов в utf-8. В ней встречаются разные забавные буквы. Мне от них надо избавиться, заменив на правильные варианты из латинского алфавита.

Фрагмент базы:
Veli Lošinj
Baška Voda
Provence-Alpes-Côte-dʿAzur
Würzburg

Существует ли таблица замен? Если нет, может, программа какая это умеет делать?

спустя 42 минуты [обр] Роман Чемисов(7/327)[досье]
Алексей В. Иванов[досье]
Есть Lingua::DE::ASCII, но как я понял, это немного не то :-(
спустя 1 час 2 минуты [обр] Lynn «Кофеман»(6/571)[досье]
Можно попробовать так:
$ php -r 'echo iconv("utf-8", "cp1251//translit", "Provence-Alpes-Côte-dʿAzur, Baška Voda, Würzburg"), "\n";'
Provence-Alpes-Cote-d?Azur, Baska Voda, Wurzburg
спустя 33 минуты [обр] Pil(0/22)[досье]
Если у вас установлена JDK, то утилита native2ascii поможет Вам. Обсуждалось тут: Локализация JSF: проблема с кодировкой
спустя 1 час 56 минут [обр] GRAy(3/259)[досье]
Pil[досье] native2ascii не ту задачу решает - он здесь не поможет.
спустя 10 минут [обр] Pil(0/22)[досье]
GRAy[досье]Он разве не заменит все не-ASCII символы на их кодовые значения? Если нет, то прошу прощения.
спустя 1 час 8 минут [обр] LookeR(237/1069)[досье]
А такие "монстры", как http://www.adelaida.net/hieroglyph/
или http://www.gribuser.ru/freeware/cleartxt/ не справляются?
спустя 6 минут [обр] LookeR(237/1069)[досье]

У меня при простом копировании в TextPad 4.7.1 ( http://www.textpad.com/products/textpad/ )

Veli Losinj
Baska Voda
Provence-Alpes-Cote-d?Azur <<<<<< НО есть косяк
Wurzburg

спустя 3 минуты [обр] Алексей Севрюков(47/1280)[досье]
LookeR[досье] Если только апострофы заменяются вопросительным знаком, то это можно легко обойти )
спустя 3 минуты [обр] LookeR(237/1069)[досье]
Алексей Севрюков[досье]
там не апостроф... :-( но это действительно не смертельно должно быть.
спустя 6 минут [обр] Алексей Севрюков(47/1280)[досье]
Кстати, когда я читал книжку по "Регулярный выражения", AFAIK в разделе POSIX что-то было про умляуты, и что-то было про модификаторы (т.е. умляут всего лишь есть модификатор для обычного символа). Если я правильно помню можно было регулом найти все умляуты и превратить буквы в обычные. Книжка к сожалению не со мной сейчас (
спустя 2 часа 11 минут [обр] GRAy(3/259)[досье]
Алексей Севрюков[досье] Проблема в том, что "умлянУтый" символ может быть записан как "литой" т.е. не иметь никаких модификаторов т.е. имеет личный code point. Нужно специальное рекурсивное декодирование при помощи специальной таблицы-маппинга. Т.е. чтобы очистить от умляутов unicode текст - надо сначала привести его в нормализованную форму.
Алексей В. Иванов[досье] Собственно сама таблица определена в стандарте Unicode называется UnicodeData.txt лежит вот тут. Описание формата файла тут.
Например символ 00c3(А с тильдой) по этой таблице декодируется в 0041(A просто) и 0303(специальная тильда) - можете проверить ;)
Написать программу которая согласно этой таблице будет раскладывать все умляутные символы и подставлять первый из них (базовый) на место старого - мне кажется для вас труда не составит. Есть ли уже готовые - не знаю к сожалению.
Pil[досье] native2ascii преобразует символы которые нельзя представить в ascii в вид /uXXXX где XXXX - это code point соответсвующего символа в unicode таблицах. Автору этого топика надо заменить умляуты на "похожие" по написанию символы - так что native2ascii тут не особо.
спустя 9 часов [обр] Алексей В. Иванов(25/2861)[досье]

Роман Чемисов[досье]
Lingua::DE::ASCII — почти то, что нужно, жаль, что только немецкий язык.

Спасибо всем Большое!
Воспользуюсь решением Lynn «Кофеман»[досье], думаю, оно наилучшим образом подойдёт для преобазования БД.

спустя 20 часов [обр] Сергей Сирик(53/737)[досье]
Алексей В. Иванов[досье]
Ммм, в немецком практически для всех "умляутоподобных" символов есть соответствия для нормального алфавита. В основном всякие двухбуквенные сочетания. Т.е. абсолютно правильным с точки зрения языка являются оба написания. Может, и чехо-словацкие братья-славяне уже начали путь в направлении глобализации??? Т.е. и для них есть такие же сочетания. ИМХО это было бы более правильно, чем заменять реально крутой и труднопроизносимый ü на банальный u :)
спустя 1 час 17 минут [обр] Алексей В. Иванов(25/2861)[досье]
Я думаю должна быть транскрипция общая, т.к., например, при поиске в гугле названия городов, содержащих умляуты он находит и подсвечивает слова, написанные латиницей. Не знаю для всех ли это, но работает.
Powered by POEM™ Engine Copyright © 2002-2005