Autor Beitrag
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Sa 18.02.17 04:02 
Mal wieder eine dieser klassisch doofen Fragen:

Angenommen, ich habe unter Delphi 10.1 ein TRichEdit-Feld, das ich per LoadFromFile() mit einer UTF-8-Datei befülle:
Wie bringe ich es dazu, Umlaute auch als Umlaute und nicht als Durcheinander anzuzeigen?

In meinem Texteditor sieht die fragliche Datei so aus wie erwartet.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.02.17 07:42 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Slipstream
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 26
Erhaltene Danke: 5



BeitragVerfasst: Sa 18.02.17 14:09 
user profile iconhydemarie hat folgendes geschrieben Zum zitierten Posting springen:
Angenommen, ich habe unter Delphi 10.1 ein TRichEdit-Feld, das ich per LoadFromFile() mit einer UTF-8-Datei befülle: Wie bringe ich es dazu, Umlaute auch als Umlaute und nicht als Durcheinander anzuzeigen? In meinem Texteditor sieht die fragliche Datei so aus wie erwartet.


Wie machst du sicher, dass deine Textdatei aus UTF8 codiert ist? Ich vermute, es ist nicht UTF8.

Gute Texteditoren verwenden Byte Order Mark, kurz BOM. Das ist eine Kennzeichnung für die Codierung des Textes. Für Fortgeschrittene bietes sich an, die Textdatei mit einem Hexeditor zu betrachten, um zu sehen, ob zB Umlaute aus zwei Bytes bestehen. Am einfachsten wäre es aber, einen Texteditor zu verwenden, der BOMs schreibt, weiss ich aber jetzt keinen auswendig.
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Sa 18.02.17 16:28 
Also im Texteditor steht, es sei UTF-8. Mein Delphiprogramm zeigt trotzdem eine Kombination aus zwei Zeichen an. (Das macht nebenbei eine meiner Funktionen zum Markieren der ganzen Zeile kaputt, denn Length verzählt sich...)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.02.17 16:32 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: hydemarie
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Sa 18.02.17 20:30 
Texteditor:

2IEzASO

TRichEdit:

Qs26Hlr

:?

Nachtrag: TEncoding.UTF8 funktioniert, danke. Kann ich das Encoding auch irgendwie aus dem OpenFileDialog auslesen? Der hat unten rechts immerhin eine Auswahlbox dafür...
Einloggen, um Attachments anzusehen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 19.02.17 08:12 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: hydemarie
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: So 19.02.17 18:23 
Die Dateierweiterungen habe ich - faul, wie ich bin - per Properties-Fenster definiert. Danke, das Encoding scheint zu funktionieren. :)
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: So 19.02.17 21:10 
Funktioniert nur so halb, Auslesen kann ich es nicht sinnvoll. ANSI wird als Encoding 1252 erkannt, bei UTF-8 ist das Encoding aber nil.

Egal, ich lass' das jetzt so. :lol:
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 19.02.17 23:52 
- Nachträglich durch die Entwickler-Ecke gelöscht -
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: So 19.02.17 23:54 
Naja, nil kann ich schlecht als Encoding setzen. :nixweiss:
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.02.17 00:00 
- Nachträglich durch die Entwickler-Ecke gelöscht -
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 20.02.17 00:36 
Das gibt bei mir eine Access Violation. Irgendwie gibt unter Delphi ziemlich viel eine Access Violation. Ganz schön anstrengend. :?

Ich habe das erst mal so gelöst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  // ...

  if Encoding = nil then
    Encoding := TEncoding.UTF8;

  // ...

  LogViewMemo.Lines.LoadFromFile(Path, Encoding);


Das löst zwar das Absturzproblem, ist aber recht hässlich.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.02.17 00:58 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: hydemarie
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 20.02.17 00:59 
Ich bin gespannt. Bis morgen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.02.17 18:26 
- Nachträglich durch die Entwickler-Ecke gelöscht -


Zuletzt bearbeitet von Frühlingsrolle am Mi 22.02.17 20:51, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: hydemarie
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 20.02.17 18:32 
Das heißt, damit sollte ich mal was anderes als nil bekommen? Da bin ich gespannt. Teste ich frühestens heute Abend. Danke für die Mühe!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.02.17 18:35 
- Nachträglich durch die Entwickler-Ecke gelöscht -
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 20.02.17 22:10 
Deine Anweisungen sind unvollständig. Kompilieren tut's nämlich so nicht ...

Zitat:
[dcc32 Error] E1026 File not found: 'frDialogIcons.dcr'
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.02.17 02:37 
- Nachträglich durch die Entwickler-Ecke gelöscht -


Zuletzt bearbeitet von Frühlingsrolle am Mi 22.02.17 20:51, insgesamt 1-mal bearbeitet