DELPHI XE3
Загрузил через OLE справочник из 1С 1C 7.7, хранящегося в dbf в формате asci,
в таблицу SQLite с использованием оберток SQLite3.pas и SQLiteTable3.pas,
но при просмотре таблицы в SQLite Studio вместо кириллицы в полях таблицы показаны крокозябры.
БД SQLite в формате UTF-8 (по умолчанию).
Механизм OLE возвращает variant.
Видимо, требуется перекодировка импортируемых данных.
А функций для конверсии так много и типы их параметров такие разные,
что я не могу разобраться, т.к я новичок в Delphi.
Уважаемые гуру, научите, пожалуйста, как правильно загрузить кириллицу.
И очень прошу, с примером кода.
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, MAI45, Вы писали:
MAI>>DELPHI XE3 MAI>>Загрузил через OLE справочник из 1С 1C 7.7, хранящегося в dbf в формате asci,
W>А в какой кодировке исходные данные? Там могут быть разные.
Я выяснил, что проблема не в OLE справочнике из 1С.
Загружаю простой текст, а при просмотре таблицы в SQLite Studio латиница нормальная, а вместо кириллицы в полях таблицы показаны крокозябры
AnyText: ansistring;
for I := 1 to 100 do
Begin
AnyText := 'Простой AnyText' + inttostr(i);
Base.ExecSQL(Format(SQLInsert,[UTF8Encode(AnyText),IntToStr(i)]));
End;
Без UTF8Encode то же самое
Здравствуйте, MAI45, Вы писали:
MAI>Я выяснил, что проблема не в OLE справочнике из 1С. MAI>Загружаю простой текст, а при просмотре таблицы в SQLite Studio латиница нормальная
Твой эксперимент лишь подтверждает общеизвестный факт, что латиница в разных кодировках одинаковая.
Для начала узнай точно, с какой кодировкой ты работаешь. Выведи текст, полученный из 1С, на форму, вместе его HEX-представлением.
P.S. Всегда остается запасной вариант переброски данных через табличный документ и Excel.
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, MAI45, Вы писали:
MAI>>Я выяснил, что проблема не в OLE справочнике из 1С. MAI>>Загружаю простой текст, а при просмотре таблицы в SQLite Studio латиница нормальная
W>Твой эксперимент лишь подтверждает общеизвестный факт, что латиница в разных кодировках одинаковая. W>Для начала узнай точно, с какой кодировкой ты работаешь. Выведи текст, полученный из 1С, на форму, вместе его HEX-представлением.
Я же написал, что проблема не в 1С.
Загружаю AnyText: ansistring;
Или я чего-то не понимаю?
Как вывести HEX-представление?
Здравствуйте, Danchik.
Наконец-то я получил правильный совет!
Огромное спасибо, Danchik!
Тема закрыта
D>Здравствуйте, MAI45, Вы писали:
D>[Skip]
D>На всякий случай, всю строку надо кодировать. По сурцам видно. D>