Einzelnen Beitrag anzeigen

dwagner

Registriert seit: 5. Apr 2005
3 Beiträge
 
#1

Eine TextDatei öffnen mit Utf-8 Zeichensatz

  Alt 5. Apr 2005, 22:57
Hallo,

Ich muß eine Textdatei einlesen. Das Problem ist das der Inhalt polnisch ist.
Die Textdatei wurde mit dem UTF-8 Zeichensatz gespeichert.

Erst habe ich versucht die Datei mit AssignFile(f,s) zu öffnen.
f ist vom type TextFile und s vom Type Widestring. Im Debugmodus erkenne ich jedoch schon das
die Zeichen in s nicht richtig dargestellt werden.

Mein zweiter Versuch war dann die Datei mit TFileStream zu öffnen jedoch habe ich hier auch das gleiche Porblem. Die Zeichen werden nicht richtig dargestellt.

Hier mein Quellcode zu meinem ersten Versuch:
Delphi-Quellcode:
var
  s : WideString;
  f : TextFile;
begin
  OpenDialog1.Execute;
  AssignFile(f, OpenDialog1.Filename);
  Reset(f);
  While not eof(f) do begin
    Readln(f,s);
    Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
    Image1.Canvas.Font.Size := 8;
    TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), Length(s));
  end;
  CloseFile(f);
end;
Und mein Quellcode zum zweiten Versuch:
Delphi-Quellcode:
var
  s : WideString;
  f : TFileStream;
begin
  OpenDialog1.Execute;
  f := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  SetLength(s, 10);
  f.Read(s[1], 10);
  f.Free;
  Label3.Caption := s;
  Image1.Canvas.Font.Charset := EASTEUROPE_CHARSET;
  TextOutW(Image1.Canvas.Handle, 0, 0, PWideChar(s), 10);
end;
In der Textdatei ist folgender Wert : 'Wewnętrzne szczegóły'

Ps. TextOutW ist eine Api Funktion wenn ich für s zum Beispiel #9787 angebe wird mir auch das richtige Zeichen in meinem Image ausgegeben.

Kann mir einer erklären wie man eine Textdatei (Utf-8) richtig auslies?

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat