Транскодирование текста

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

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

Ответить
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Транскодирование текста

Сообщение Tango »

Привожу упрощённый пример.
Знаю что 1000 раз уже спрашивали.
Спрашиваю 1001-й раз потому что.... сами попробуйте. Во всём хитросплетении не пойму.

Графическое приложение на Win 7 x64. Кодовая страница не установлена.

Код: Выделить всё

uses LConvEncoding;

  S1:=#$CF#$F0#$E8#$E2#$E5#$EF2#$00;   //'Привет'
  S:=ConvertEncoding(S1, 'cp1251', 'utf16'); // то же и с utf8
  Button1.Caption:=S;


Выводит ??????. Вопрос, ПОЧЕМУ???!! Я же перекодировал! Как так?
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  S1: string;
begin
  S1:=#$CF#$F0#$E8#$E2#$E5#$EF2#$00;   //'Привет'
  ShowMessage(CP1251ToUTF8(S1));
end;                 

Выводит Приве?
hovadur
постоялец
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Сообщение hovadur »

Код: Выделить всё

S1:=#$CF#$F0#$E8#$E2#$E5#$EF2#$00;

должно быть так

Код: Выделить всё

S1:=#$CF#$F0#$E8#$E2#$E5#$F2#$00;

и utf8, а не utf16
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

Не заметил буквочки Е!!!
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

не важно как там с "букафками", главное - нет проблем с перекодировкой!
Ответить