Ansi и DBGrid :Как правильно перекодировать?

Вопросы программирования и использования среды Lazarus.

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

Ansi и DBGrid :Как правильно перекодировать?

Сообщение jotto » 26.10.2010 20:28:24

Потихоньку начал осваивать Lazarus под Win XP,(до этого работал на Delphi 5), столкнулся с Unicode(UTF8). Из форума понял, что Lazarus (Win32) собран в этой кодировке и программы на нем не будут работать под Win98 и Win2000(?). У меня сервер Pervasive отдает данные в OEM/ANSI кодировке, к нему я цепляюсь через OBDConnect и все компоненты DB**** не выводят русские буквы. Пока в DBGrid вывожу текст через ф-ю AnsiToUtf8. Есть ли "стандартное" решение данной проблемы? Еще не могу толком понять действия ф-й SysToUtf8 и Utf8ToSys
jotto
новенький
 
Сообщения: 17
Зарегистрирован: 26.10.2010 10:44:20

Re: Ansi и DBGrid :Как правильно перекодировать?

Сообщение dunin » 26.10.2010 20:51:05

jotto писал(а):...что Lazarus (Win32) собран в этой кодировке и программы на нем не будут работать под Win98 и Win2000(?)....

Это действительно так? Кто точно знает? В первый раз слышу.

jotto писал(а):...У меня сервер Pervasive отдает данные в OEM/ANSI кодировке, к нему я цепляюсь через OBDConnect и все компоненты DB**** не выводят русские буквы. Пока в DBGrid вывожу текст через ф-ю AnsiToUtf8. Есть ли "стандартное" решение данной проблемы?

Тут процентов двадцать пять минимум сообщений на форуме по Лазарусу про эти кодировки. ИМХО стандартного решения нет - каждый пляшет как ему удобнее. Я пошел путем "сменить кодировку БД", точнее пересоздать БД и перегнать туда данные сконвертировав в UTF8 (FireBird).

jotto писал(а):Еще не могу толком понять действия ф-й SysToUtf8 и Utf8ToSys

Для Виндуса то же самое, что и AnsiToUtf8 и в другую сторону.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Ansi и DBGrid :Как правильно перекодировать?

Сообщение EmeraldMan » 26.10.2010 21:04:00

SysToUtf8 и Utf8ToSys нужны для кроссплатформенности, очень удобно если программа для разных систем компилируется.
Если кодировка в системе utf8, то они ничего не делают со строкой, если системная кодировка ansi тогда происходит перекодирование.

Добавлено спустя 4 минуты 14 секунд:
jotto писал(а):Пока в DBGrid вывожу текст через ф-ю AnsiToUtf8. Есть ли "стандартное" решение данной проблемы?

Можно попробовать в OBDCConnection'е поставить нужную CharSet.
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Ansi и DBGrid :Как правильно перекодировать?

Сообщение Mr.Smart » 26.10.2010 21:10:17

jotto писал(а):Из форума понял, что Lazarus (Win32) собран в этой кодировке и программы на нем не будут работать под Win98 и Win2000(?).

Вы не верно поняли. Под NT системой тобиш Win2000 работать будет, а на счёт Win9x необходимо пробовать.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Ansi и DBGrid :Как правильно перекодировать?

Сообщение jotto » 26.10.2010 21:17:14

Спасибо всем за разъяснения. Достаточно непросто переходить на Unicode особенно учитывая многоплатформенность...
jotto
новенький
 
Сообщения: 17
Зарегистрирован: 26.10.2010 10:44:20


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 45

Рейтинг@Mail.ru