Страница 1 из 1

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

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

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

СообщениеДобавлено: 30.09.2009 11:15:30
VirtUX
Прилагаю модуль coder.pas. В нем я реализовал перекодировку UTF8, CP-1251, OEM866. Сам пользуюсь без проблем. Найдешь, вдруг, ошибку - отпишись.

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

СообщениеДобавлено: 30.09.2009 11:36:54
virus_hm
большое спасиба. dos to win работает отлично.

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

СообщениеДобавлено: 19.03.2014 18:56:00
Dreamtime
Пробовал преобразовать все ок , но когда в мемо заганяю через Memo1.Lines.Add кодировка все равно OEM866 как быть?

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

СообщениеДобавлено: 19.03.2014 22:21:27
Дож
Код: Выделить всё
cat input | iconv -f cp866 -t cp1251 > output

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

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

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