Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.06.09;
Скачать: CL | DM;

Вниз

MultiByteToWideChar или другой способ перевести UTF16 LE в ANSI   Найти похожие ветки 

 
NapalmRain   (2012-11-09 11:15) [0]

Доброго всем времени суток. Мне необходимо привести строку такого вида
http://s2.ipicture.ru/uploads/20121109/BWZuvTLM.jpg
Во что-то наиболее похожее на текст. В теории эта строка в UTF 16 Le, везде советуют использовать multibytetowidechar но нигде не смог найти примеры этой функции. Или может быть есть другой способ? Прошу подсазки


 
DVM ©   (2012-11-09 11:51) [1]


>  но нигде не смог найти примеры этой функции

как  то так, с поправкой на твою задачу разумеется:


function AnsiStringToWideString(const Src: AnsiString; CodePage: Word = 0): WideString;
var
 Len: Integer;
begin
 if CodePage = 0 then
   CodePage := GetACP;
 if Src = "" then
   Result := ""
 else
   begin
     Len := MultiByteToWideChar(CodePage, 0, PAnsiChar(Src), Length(Src), nil, 0);
     if Len = 0 then
       RaiseLastOSError;
     SetLength(Result, Len);
     Len := MultiByteToWideChar(CodePage, 0, PAnsiChar(Src), Length(Src),
       PWideChar(Result), Length(Result));
     if Len = 0 then
       RaiseLastOSError;
   end;
end;



> Или может быть есть другой способ? Прошу подсазки

В новых версиях Delphi >=2009 есть класс TEncoding им можно. Для более старых версий Delphi есть аналог TEncoding тут:
http://www.gunsmoker.ru/2010/04/delphi-2009.html


 
DVM ©   (2012-11-09 12:23) [2]

И да, кстати, именно в Ansi как написано в вопросе перевести правильно получится только если в системе текущая кодовая страница подходящая.
В WideString получится всегда.



Страницы: 1 вся ветка

Текущий архив: 2013.06.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
3-1290119666
TheEd
2010-11-19 01:34
2013.06.09
Есть ли возможность автоматически грузить описания полей?


15-1359702784
O'ShinW
2013-02-01 11:13
2013.06.09
Прием для логирования/информирования


15-1359577803
Юрий
2013-01-31 00:30
2013.06.09
С днем рождения ! 31 января 2013 четверг


15-1359640696
БарЛог
2013-01-31 17:58
2013.06.09
Synolony хранилище


15-1359664205
Юрий
2013-02-01 00:30
2013.06.09
С днем рождения ! 1 февраля 2013 пятница