qwertyhp писал(а):Есть таблица Excel с датами, в которой месяцы отображаются греческими кракозябрами (Unicode). Нужно преобразовать их в кодировку Windows 1251.
Вспомнилась
цитата на Баше.
— Слушай, у тебя нету какой-нибудь программки, чтобы в экселе кодировку меняла?
— Ты про тот файл с турецкими символами?
— Да.
— Это турецкие символы...
Может, там и правда греческие буквы изначально были?
Как это лечится?
В зависимости от конкретной ситуации:
- если файл сохранён в каком-нибудь старом формате (не-Unicode), то надо преобразовать символы из кодировки cp866 в cp1251;
- если на каком-то этапе имела место ошибочная избыточная перекодировка, надо попробовать декодирование в ту и обратную сторону, чтобы восстановить исходный текст хоть в какой-то стандартной кодировке, а уже потом плясать дальше; увы, при этом некоторые символы может потребоваться восстанавливать вручную;
- если действительно в исходном файле хранился Юникод, и он попортился, то надо пытаться восстановить UTF-структуру — они бывают разные;
- наконец, учитывая, что в данном конкретном случае речь идёт об ограниченном наборе буквосочетаний, можно просто вручную выполнить 12 замен крякозябр на нормальные названия месяцев; увы, этот метод может оказаться неприменим, если в исходном тексте встречаются управляющие символы, которые плохо копируются в диалог замены.
В общем, если бы увидеть кусочек того файла, разговор получился более предметным.