Имеется lazarus 0.9.26.2 beta, fpc 2.2.2, odac 4.70.
вместо кириллицы - пробелы. если вставлять кириллицу из fpc, то потом запись отображается корректно, но в базу пишется как понял в кодировке utf8. Кодировка базы - CL8MSWIN1251.
где и что нужно подточить напильником?
ODAC и кириллица
Модератор: Модераторы
При записи/чтении сам меняй кодировку UTF8ToAnsi/AnsiToUTF8.
это первое, что я попробовал - не помогает.
Приведите код чтения/записи.
Код: Выделить всё
procedure TForm1.OraQuery1AfterScroll(DataSet: TDataSet);
begin
Label1.Caption:= Utf8ToAnsi(dataset.Fields[1].AsString);
end; Так вам вроде бы наоборот надо. Из базы вы получаете Win1251, а LCL работает с UTF8. Т.е. в данном примере нужно использовать AnsiToUtf8
Cемён-Семёныч
заработало
я правильно понимаю, что всю обработку строк уже нужно делать ручками (в частности конвертацию)?
Добавлено спустя 1 час 7 секунд:
чувствую, что нужно у класса TStringFiled малость подправить методы SetAsString/GetAsString.
Достаточно ли после внесения изменения в IDE выбрать пункт "Сервис"|"Собрать Lazarus"?
я правильно понимаю, что всю обработку строк уже нужно делать ручками (в частности конвертацию)?
Добавлено спустя 1 час 7 секунд:
чувствую, что нужно у класса TStringFiled малость подправить методы SetAsString/GetAsString.
Достаточно ли после внесения изменения в IDE выбрать пункт "Сервис"|"Собрать Lazarus"?
gelios писал(а):я правильно понимаю, что всю обработку строк уже нужно делать ручками (в частности конвертацию)?
Да, если строки у вас в кодировке отличной от UTF8, то конвертировать нужно ручками. Не знаю, умеет ли оракл, как Firebird, автоматически перекодировать данные при указании кодировки соединения...
gelios писал(а):Достаточно ли после внесения изменения в IDE выбрать пункт "Сервис"|"Собрать Lazarus"?
Думаю, достаточно. Пусть более опытные поправят, если ошибаюсь.
