изменение кодировки cp866 -> cp1251

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
virus_hm
новенький
Сообщения: 22
Зарегистрирован: 19.09.2009 23:52:40

изменение кодировки cp866 -> cp1251

Сообщение virus_hm »

Помогите разобратся. Есть файл в кодировке 866 нужно его прочитать и записать в базу firebird но уже в кодировке 1251 или uft8.
Пробывал через synachar работать, какая то фигня получается в базу заполняются одни знаки подчеркивания.
Через iconvenc не смог разобратся с параметрами.
Помогите решить проблему.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Прилагаю модуль coder.pas. В нем я реализовал перекодировку UTF8, CP-1251, OEM866. Сам пользуюсь без проблем. Найдешь, вдруг, ошибку - отпишись.
Вложения
coder.pas.tar.gz
coder.pas
(3.7 КБ) 1033 скачивания
virus_hm
новенький
Сообщения: 22
Зарегистрирован: 19.09.2009 23:52:40

Сообщение virus_hm »

большое спасиба. dos to win работает отлично.
Dreamtime
незнакомец
Сообщения: 2
Зарегистрирован: 05.08.2013 16:50:09

Сообщение Dreamtime »

Пробовал преобразовать все ок , но когда в мемо заганяю через Memo1.Lines.Add кодировка все равно OEM866 как быть?
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Код: Выделить всё

cat input | iconv -f cp866 -t cp1251 > output
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

virus_hm писал(а):Помогите разобратся. Есть файл в кодировке 866 нужно его прочитать и записать в базу firebird но уже в кодировке 1251 или uft8.
Пробывал через synachar работать, какая то фигня получается в базу заполняются одни знаки подчеркивания.
Через iconvenc не смог разобратся с параметрами.
Помогите решить проблему.

В Lazarus есть готовый модуль lconvencodinc, его подключаете в раздел uses.
В модуле есть функция cp866ToUTF8, перед записью в базу строки конвертируете в UTF8. В настройках компонента Database для доступа к данным FireBird, ставите кодировку на клиенте UTF8, не зависимо от того, какая кодировка в базе.
Ответить