Einzelnen Beitrag anzeigen

Bambini
(Gast)

n/a Beiträge
 
#14

AW: EEncodingError Fehler

  Alt 23. Apr 2014, 10:16

TMemIniFile.Create(TempFile,TEncoding.AutoDetect); ?
Denke nicht das es Autodetect gibt, da es für Windows 1252 Zeichensatz kein BOM gibt. Wenn es also eine Datei mit der Codepage 1252 ist, dann stehen die deutschen Umlaute wie z.B. ö mit dem Hexwert $F6 in der Datei. In einer UTF8 codierten Datei steht das ö als zwei Byte $C3 $B6 drin.

Wenn man auf Mac Seite einen String von Codepage 1252 in UTF8 konvertiert möchste, müßte man die
Datei so öffen:
TMemIniFile.Create(TempFile,TEncoding.GetEncoding(1252)); Aber ich denke nicht das das MacOS alle Codepages und deren Konvertierung von und zu UTF8 kennt.
Entweder man sorgt dafür, dass die Datei bereits in UTF8 vorliegt oder man liesst die Datei in TBytes und konvertiert die deutschen Umlaute selbst ins UTF8.

Vielleicht so:
Delphi-Quellcode:
for i:=Low(DateiInBytes) to High(DateiInBytes) do
  case DateiInBytes[i] of
    $F6 : Result := Result + 'ö';

...
  Mit Zitat antworten Zitat