Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
3-1289558383
dest81
2010-11-12 13:39
2013.06.09
Поиск по несуществующему полю


2-1352129772
Jimmy
2012-11-05 19:36
2013.06.09
Как быстро сравнить две строки?


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


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


2-1352423459
Signal
2012-11-09 05:10
2013.06.09
Как плучить кол-во фреймов из IWebBrowsera?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский