Форум: "Начинающим";
Текущий архив: 2013.06.09;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c