Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2023, 15:53   #1
sdsfy
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 27
По умолчанию Проблема с кодировками

Добрый день, коллеги!

Есть работающий софт на Delphi, который заносит в TStringGrid данные, частично из FBDatabase через компоненты IBDatabase и IBQuery, частично прямо, кириллицей. Эти данные прекрасно читабельны при запуске экзешника под виндами, но при запуске егоже под WINE на Ubuntu корректно отображаются только те, что были кириллицей написаны в коде, те же, что получены из БД уже нечитабельны.
Подозреваю, что проблема в кодировке БД, но ума не приложу как это дело поправить, видимо нужно при записи в ячейку StrinGrid какое-то явное приведение к типу, но из какого к какому?

Код:
      if TestStatus(FieldByName('tex_code').AsInteger, FieldByName('main_table').AsString, testDate, tstStatus) then
      begin
        inc(k);
        execTestsSG.RowCount := k;
        execTestsSG.Cells[0, k-1] := IntToStr(k-1);
        execTestsSG.Cells[1, k-1] := FieldByName('meth_name').AsString;
        execTestsSG.Cells[2, k-1] := testDate;
        if tstStatus = 0 then execTestsSG.Cells[3, k-1] := 'Прерван'
        else execTestsSG.Cells[3, k-1] := 'Выполнен';
      end
Снимок.PNG
sdsfy вне форума Ответить с цитированием
Старый 03.03.2023, 16:14   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Храните данные в WideString и проблем не будет.
В Windows у вас по умолчанию кодировка CP-1251, а под Linux - UTF-8. Чтобы не ломать голову с перекодировкой используйте WideString в кодировке UCS-16BE. Но это не решит проблемы все же. Некоторые UNIX системы используют кодировку UCS-16LE. Но тут перекодировать проще. Достаточно поменять порядок байт, а не заморачиваться с таблицами символов.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная проблема с кодировками Jleksern PHP 4 05.08.2013 18:16
Проблема с кодировками ctpz PHP 4 06.10.2012 18:25
Проблема с кодировками, Delphi SonicBob Помощь студентам 4 27.01.2012 12:29
Проблема з кодировками! hoza_syl PHP 3 10.10.2009 15:10
Проблема с кодировками igroman Общие вопросы C/C++ 9 25.01.2009 22:25