Создаю на лазарусе проект для терминала сбора данных под WinCE. Проблема в неправильном отображении принимаемых данных (кодировка). Т.е. если я непосредственно в коде пишу, например: MsgBox('Привет',0), или
Label1.Caption:='Текст по русски'
то все Ок. Но если так показываю данные, принимаемые по сети (WiFi), т.е.
var Buf:array [0..1023] of char;
....
r:=recv(sock,@buf,sizeof(buf),0);
Label1.Caption:=buf;
то имею отображение с неправильной кодировкой, т.е. латиница отображается правильно, а вместо кирилицы вижу восточноевпропейские символы с точками, кружечками и т.д.
Из документации по Лазарусу я понял что он все строки (string) хранит в UTF8 и производит автоматическое преобразование из ansi (наверное такое происходит в Label1.Caption:=buf;). Однако на WinCE девайсе установлена английская локаль (изменить на рус нет возможности, в панели управления только англ, франц, и два китая) и соотв. такое преобразование происходит не правильно.
Вопрос: как указать лазарусу что принимаемые данные в кодировке win1251 ? или как правильно преобразовать (показать) принятые строки?