Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi string to UTF 16 (https://www.delphipraxis.net/133105-string-utf-16-a.html)

Master_Jochen 25. Apr 2009 18:15


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

mkinzler 25. Apr 2009 18:50

Re: string to UTF 16
 
Welche Delphiversion?

Master_Jochen 25. Apr 2009 19:04

Re: string to UTF 16
 
Delphi 7

samso 26. Apr 2009 07:38

Re: string to UTF 16
 
Probiere mal:

Delphi-Quellcode:
function AnsiToUtf16(const s: AnsiString): WideString;
begin
  Result := s;
end;

jaenicke 26. Apr 2009 07:41

Re: string to UTF 16
 
Es müsste eine Funktion StringToWideChar oder so ähnlich geben.

Bernhard Geyer 26. Apr 2009 09:26

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.

Master_Jochen 26. Apr 2009 11:15

Re: string to UTF 16
 
Danke für eure tips.
Ich habe jetzt mal

Delphi-Quellcode:
function AnsiToUtf16(const s: AnsiString): WideString;
begin
  Result := s;
end;
versucht , also sprich meinen string damit umgewandelt dann in ein memo geschrieben und dann das memo gespeichert aber das geht scheinbar nicht.
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,

mkinzler 26. Apr 2009 11:19

Re: string to UTF 16
 
Ein Memo vor D2009 kann nur einen AnsiString aufnehmen

mjustin 26. Apr 2009 12:38

Re: string to UTF 16
 
UTF-16 Konvertierungsfunktionen sind eventuell hier enthalten:

Fundamentals 3 - Unicode units
http://fundementals.sourceforge.net/unicode.html

oder

OpenXML
http://www.philo.de/xml/downloads.shtml

himitsu 26. Apr 2009 13:06

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:
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;
(wenn du unbedingt willst, dann kannst du ja gern die auskommentierte Prüfung aktivieren, aber diese wird eh nicht's melden)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz