![]() |
string to UTF 16
Hallo liebe Profies.
Erstmal sorry ich bin ein Delphi anfänger und habe ein problem. Ich möchte einen String ins UTF-16 LE Format convertieren habe aber über googel und auch hier nichts gefunden. Außer dieser funktion AnsiToUtf8(); aber AnsiToUtf16(); gibt es nicht. Dann habe ich Beispiele gefunden zum laden und speichern von UTF-16 aber eben nicht zum convertieren. Zu meinem project: Ich möchte log files auslesen und neu beschreiben das auslesen und umwandeln von utf 16 geht auch habe dazu einen code fetzen gefunden aber das game can den logfiele nur auch wieder lesen wenn ich meinen string auch ins UTF-16 format bringe. Ok nun habe ich eine ganz große bitte kann mir jemand ne function schreiben oder zeigen mit der ich einen string in utf 16 formatieren kann? Ich bedanke mich schonmal hier fürs lesen meines problems und für eventuelle antworten oder lösungsansätze. mfg Jochen |
Re: string to UTF 16
Welche Delphiversion?
|
Re: string to UTF 16
Delphi 7
|
Re: string to UTF 16
Probiere mal:
Delphi-Quellcode:
function AnsiToUtf16(const s: AnsiString): WideString;
begin Result := s; end; |
Re: string to UTF 16
Es müsste eine Funktion StringToWideChar oder so ähnlich geben.
|
Re: string to UTF 16
Solagen du dich im Bereich Unicode 3.0 befindest kannst (und das ist eigentlich für real noch verwendete Sprachen ziemlich ausreichend), kannst du deinen AnsiString einfach einem Widestring zuweisen. Ab D2009 oder mit hilfe von Komponenten wie Elpack oder TNTWare oder JCL kannst du diesen String über eine Unicode-Stringliste in eine Textdatei speichern.
|
Re: string to UTF 16
Danke für eure tips.
Ich habe jetzt mal
Delphi-Quellcode:
versucht , also sprich meinen string damit umgewandelt dann in ein memo geschrieben und dann das memo gespeichert aber das geht scheinbar nicht.
function AnsiToUtf16(const s: AnsiString): WideString;
begin Result := s; end; das memo scheint alles wieder umzukehren da ein echtes utf 16 so wie ich es geladen hatte nicht im memo angezeigt werden konnte aber dieses sehr wohl. mmh ich muss do wohl noch weiter rumprobieren, |
Re: string to UTF 16
Ein Memo vor D2009 kann nur einen AnsiString aufnehmen
|
Re: string to UTF 16
UTF-16 Konvertierungsfunktionen sind eventuell hier enthalten:
Fundamentals 3 - Unicode units ![]() oder OpenXML ![]() |
Re: string to UTF 16
Wie schon gesagt, wenn du ein nur in und von ANSI konvertierst, dann entspricht der Unicode-String der UTF16-Darstellung,
da nur Unicodezeichen zwischen #$8000 und #$fffd in unicode und utf16 eine andere Darstellung besitzen.
Delphi-Quellcode:
(wenn du unbedingt willst, dann kannst du ja gern die auskommentierte Prüfung aktivieren, aber diese wird eh nicht's melden)
function AnsiToUtf16(const s: AnsiString): WideString;
//var i: Integer; begin Result := s; //for i := 1 to Length(Result) do // if Result[i] > #$7fff then // raise Exception.Create('is not an utf8 string'); end; function Utf16ToAnsi(const s: WideString): AnsiString; var i: Integer; begin for i := 1 to Length(s) do if s[i] > #$7fff then s[i] := '?'; Result := s; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 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