Autor |
Beitrag |
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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
|
Verfasst: Sa 18.02.17 07:42
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Slipstream
Beiträge: 26
Erhaltene Danke: 5
|
Verfasst: Sa 18.02.17 14:09
hydemarie hat folgendes geschrieben : | 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
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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
|
Verfasst: Sa 18.02.17 16:32
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: hydemarie
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: Sa 18.02.17 20:30
Texteditor:
TRichEdit:
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
|
Verfasst: So 19.02.17 08:12
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: hydemarie
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 19.02.17 23:52
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: So 19.02.17 23:54
Naja, nil kann ich schlecht als Encoding setzen.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 20.02.17 00:00
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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:
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
|
Verfasst: Mo 20.02.17 00:58
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: hydemarie
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: Mo 20.02.17 00:59
Ich bin gespannt. Bis morgen!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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
|
Verfasst: Mo 20.02.17 18:35
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
hydemarie
Beiträge: 480
Erhaltene Danke: 51
|
Verfasst: 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
|
Verfasst: 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
|
|