Как символы Unicode перевести в кодировку Windows 1251?

Программирование на Visual Basic for Applications
qwertyhp
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 155
Зарегистрирован: 07.10.2009 (Ср) 15:02
Откуда: Москва

Как символы Unicode перевести в кодировку Windows 1251?

Сообщение qwertyhp » 20.07.2010 (Вт) 20:24

Дело в следующем: есть таблица Excel с датами, в которой месяца отображаются греческими кракозябрами (Unicode). Нужно преобразовать их в кодировку Windows 1251. Программная смена раскладки клавиатуры успеха не имела. Подскажите, пожалуйста - как это лечится?
Спасибо.
Пятачок Forever! :)

Samsonov
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 22.04.2010 (Чт) 7:32
Откуда: DC

Re: Как символы Unicode перевести в кодировку Windows 1251?

Сообщение Samsonov » 04.08.2010 (Ср) 7:44

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


Как это лечится?
В зависимости от конкретной ситуации:
  • если файл сохранён в каком-нибудь старом формате (не-Unicode), то надо преобразовать символы из кодировки cp866 в cp1251;
  • если на каком-то этапе имела место ошибочная избыточная перекодировка, надо попробовать декодирование в ту и обратную сторону, чтобы восстановить исходный текст хоть в какой-то стандартной кодировке, а уже потом плясать дальше; увы, при этом некоторые символы может потребоваться восстанавливать вручную;
  • если действительно в исходном файле хранился Юникод, и он попортился, то надо пытаться восстановить UTF-структуру — они бывают разные;
  • наконец, учитывая, что в данном конкретном случае речь идёт об ограниченном наборе буквосочетаний, можно просто вручную выполнить 12 замен крякозябр на нормальные названия месяцев; увы, этот метод может оказаться неприменим, если в исходном тексте встречаются управляющие символы, которые плохо копируются в диалог замены.
В общем, если бы увидеть кусочек того файла, разговор получился более предметным.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList