Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Помогите разобраться с TextOutW


Автор: leonidus2011 11.7.2011, 10:51
В файле есть строка в юникоде. Я читаю ее с помошью библиотеки TNT в строку widestring после чего мне нужно вывести эту строку на канву формы.

Делаю так:

var
 l:ttntstringlist;
 s:widestring;
begin
 l:=ttntstringlist.Create;
 l.LoadFromFile('с:\1.txt');
 s:=l.Strings[0];
 TextOutW(form1.Canvas.Handle, 10, 10, pWideChar(s), Length(s));

в итоге получаю вместо набора проверочных символов êëÅÃÁ пять вертикальных черных черточек. Что я сделал не так?

Автор: Keeper89 11.7.2011, 11:36
Дельфи какая? Если не юникодная, так загрузить не получится

Автор: leonidus2011 11.7.2011, 11:53
Делфи 6-я, не юникодная само собой. А что именно загрузить не получится? Юникодный файл читаю с диска юникодной библиотекой TNT.

Автор: nicestep 12.7.2011, 08:00
Цитата(leonidus2011 @ 11.7.2011,  13:53)
Делфи 6-я, не юникодная само собой. А что именно загрузить не получится? Юникодный файл читаю с диска юникодной библиотекой TNT.

Посмотри отладчиком через Run-Evaluate значение переменной s после этой строки:
Код

s:=l.Strings[0];

Скорее всего, ты увидишь êëÅÃÁ

Автор: leonidus2011 12.7.2011, 08:06
У меня 6-я делфа, она не поддерживает юникод поэтому вижу eeAAA и что это значит?

Автор: Keeper89 13.7.2011, 01:41
leonidus2011, в файле какая кодировка? Возможно надо смотреть в сторону Utf8Decode или UnicodeToUTF8.

Автор: leonidus2011 13.7.2011, 11:19
Всем спасибо, вопрос снят

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)