Приветствую!
Есть задача распарсить некий csv-файл и поля сложить в базу.
Вся беда в том, что значения неких полей написаны в смешанной кодировке.
К примеру, название выглядит вот так: ΝΙΚΟLΟPΟΥLΟS Ν. ΙΟAΝΝIS
Но большинство букв там не латинские. Вот как эта надпись выглядит в дампе:
$VAR1 = [
"\x{39d}",
"\x{399}",
"\x{39a}",
"\x{39f}",
'L',
"\x{39f}",
'P',
"\x{39f}",
"\x{3a5}",
'L',
"\x{39f}",
'S',
' ',
"\x{39d}",
'.',
' ',
"\x{399}",
"\x{39f}",
'A',
"\x{39d}",
"\x{39d}",
'I',
'S'
];
Отсюда видно, что большинство символов юникодные.
В принципе, на это можно было б и забить и написать их в такой последовательности: &#n1;&#n2 .... etc, при этом надпись будет отображаться корректно.
Но тогда поиск по такой базе будет невозможен. Символы с виду латинские, а на самом деле совсем нет.
Задача: преобразовать юникодные символы, которые совпадают с латинскими, в нормальную кодировку. Чтобы буква N была 'N' а не «\x{39d}»
В работе я использую perl. Но не побрезгаю, если будет предложено какое-нить иное решение.
Заранее благодарю.