Forum: Sonstige Fragen zu Delphi
by Bernhard Geyer,
17. Jan 2010
#$80 im Ansibereich ja, aber nicht #$0080 im Unicodebereich sondern #$20AC
Ohne Gewähr das genau die Byteanzahl passt:
temp: WideString
...
SetLength(temp, Length(S) div SizeOf(WideChar));
FS.Read(temp; Length(S)-1);
Forum: Sonstige Fragen zu Delphi
by Bernhard Geyer,
17. Jan 2010
Und schon hast du das €-Zeichen verloren bzw. fehlerhaft interpretiert.
Du mußt den String als Unicodestring einlesen. Dann kannst du ihn auch korrekt verarbeiten.
Wo kommt denn der String her?
I.d.R. haben Unicodetextdateien einen entsprechenden BOM-Kennzeichner. Das Elpack, TNTWare oder die Unicodeklassen (TXXStringlist und Co.) aus der JCL machen das für dich automatisch.