Главная страница
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
15-1359577803
Юрий
2013-01-31 00:30
2013.06.09
С днем рождения ! 31 января 2013 четверг


15-1359504581
Кто б сомневался
2013-01-30 04:09
2013.06.09
Windows 7 - баг с удалением любого exe файла


2-1352118969
AlphaHuman
2012-11-05 16:36
2013.06.09
нужен ли try..exept


3-1289900330
12
2010-11-16 12:38
2013.06.09
ORA-20004 при попытке задать параметр процедуре


15-1359614914
aka
2013-01-31 10:48
2013.06.09
простенький хостинг для проектов