![]() |
Multibyte-Text in Unicode konvertieren mit Charset
Hallo,
nachdem ich fast den ganzen Tag auf MSDN verbracht habe, um herauszufinden, wie man einen Text in Unicode konvertiert, von dem nur das Charset bekannt ist, bin ich auf folgende Funktion gekommen:
Delphi-Quellcode:
Die Routine ist insbesondere dann praktisch, wenn Dateiformate gelesen werden müssn. In meinem Fall RTF. Da werden Texte gerne über Charsets definiert.
function ConvertText(const Text: AnsiString; Charset: Cardinal): WideString;
var CharsetInfo: TCharsetInfo; L: Integer; begin // Codepage besorgen TranslateCharsetInfo(Charset, CharsetInfo, TCI_SRCCHARSET); // Puffergröße ermitteln L := MultiByteToWideChar(CharsetInfo.ciACP, MB_PRECOMPOSED, @Text[1], Length(Text), nil, 0); // Puffer anlegen SetLength(Result, L); // Konvertieren MultiByteToWideChar(CharsetInfo.ciACP, MB_PRECOMPOSED, @Text[1], Length(Text), @Result[1], L); end; Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz