Nochmal Umlaute
Moderator: Moderatoren
-
- UDF-Programmierer
- Beiträge: 54
- Registriert: Sa, 07. Jan 2006 17:30
- Wohnort: Braunschweig
- Kontaktdaten:
Nochmal Umlaute
Hallo zusammen,
ich wollte nicht in den Thread mit dem HP und Umlauten reinposten.
Bei ist folgendes Problem aufgetreten: Die Umlaute äöü werden aus der PostgreSQL Datenbank als Ansi-Zeichen gesendet. Eine ConvToOemCP macht daraus in XBase++ lesbare Zeichen. Beim abspeichern der Daten Konvertierung zu Ansi geht auch. Bislang kein Problem. Nun aber: Beim ß (sz) versagt diese Methode. In der einen Darstellung (Oem) kommt es als * und die Umlaute sind richtig, ohne Konvertierung zu Oem steht irgend was kryptisches da und die Umlaute sind auch im Eimer.
Liegt das evtl am Zeichensatz? Die verwendeten Zeichensätze sind Times New Roman, Arial und Courier New.
Oder gibt es da ein grundsätzliches Problem bei Umlauten? Ach ja, die Darstellung auf dem Monitor ist ok, aber beim Druck in RTF-Datei mit dem Paket RTF150 GUI-Mode tritt dieser Fehler auf.
Gruß
Manfred Kuhn
ich wollte nicht in den Thread mit dem HP und Umlauten reinposten.
Bei ist folgendes Problem aufgetreten: Die Umlaute äöü werden aus der PostgreSQL Datenbank als Ansi-Zeichen gesendet. Eine ConvToOemCP macht daraus in XBase++ lesbare Zeichen. Beim abspeichern der Daten Konvertierung zu Ansi geht auch. Bislang kein Problem. Nun aber: Beim ß (sz) versagt diese Methode. In der einen Darstellung (Oem) kommt es als * und die Umlaute sind richtig, ohne Konvertierung zu Oem steht irgend was kryptisches da und die Umlaute sind auch im Eimer.
Liegt das evtl am Zeichensatz? Die verwendeten Zeichensätze sind Times New Roman, Arial und Courier New.
Oder gibt es da ein grundsätzliches Problem bei Umlauten? Ach ja, die Darstellung auf dem Monitor ist ok, aber beim Druck in RTF-Datei mit dem Paket RTF150 GUI-Mode tritt dieser Fehler auf.
Gruß
Manfred Kuhn
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Drucken Umlaute
Hallo Kuhno,
schreib doch mal den Text wo das ß vorkommt mit memowrit in eine textdatei und prüfe mal was dann drin steht.
Vermutlich kommt das Zeichen nicht sauber bei xbase an.
schreib doch mal den Text wo das ß vorkommt mit memowrit in eine textdatei und prüfe mal was dann drin steht.
Vermutlich kommt das Zeichen nicht sauber bei xbase an.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
ConvToOemCp(ConvToAnsiCP('ß')) liefert 'ß' zurück. Daran liegt es nicht. Aber ein ß wird in RTF so repräsentiert:
\'df
Also aus "beißen" wird "bei\'dfen". Ich vermute, hier liegt Dein Problem. RTF beherrscht ßs nicht, genausowenig wie HTML, jedenfalls nicht als direkt repräsentiertes Zeichen. Erzeuge mal mit WordPad einen kurzen Text, der Umlaute, ßs usw. enthält, und schau Dir den mit einem Editor an.
\'df
Also aus "beißen" wird "bei\'dfen". Ich vermute, hier liegt Dein Problem. RTF beherrscht ßs nicht, genausowenig wie HTML, jedenfalls nicht als direkt repräsentiertes Zeichen. Erzeuge mal mit WordPad einen kurzen Text, der Umlaute, ßs usw. enthält, und schau Dir den mit einem Editor an.
Herzlich,
Tom
Tom
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Diese Funktion konvertiert einen OEM-Text für die RTF-Repräsentation:
Function ToRTF (cZeile)
cZeile := StrTran(cZeile,"ä","\'e4")
cZeile := StrTran(cZeile,"ö","\'f6")
cZeile := StrTran(cZeile,"ü","\'fc")
cZeile := StrTran(cZeile,"Ä","\'c4")
cZeile := StrTran(cZeile,"Ö","\'d6")
cZeile := StrTran(cZeile,"Ü","\'dc")
cZeile := StrTran(cZeile,"ß","\'df")
cZeile := StrTran(cZeile,"§","\'a7")
cZeile := "\par "+cZeile
RETURN (cZeile)
Function ToRTF (cZeile)
cZeile := StrTran(cZeile,"ä","\'e4")
cZeile := StrTran(cZeile,"ö","\'f6")
cZeile := StrTran(cZeile,"ü","\'fc")
cZeile := StrTran(cZeile,"Ä","\'c4")
cZeile := StrTran(cZeile,"Ö","\'d6")
cZeile := StrTran(cZeile,"Ü","\'dc")
cZeile := StrTran(cZeile,"ß","\'df")
cZeile := StrTran(cZeile,"§","\'a7")
cZeile := "\par "+cZeile
RETURN (cZeile)
Zuletzt geändert von Tom am Di, 12. Dez 2006 17:22, insgesamt 1-mal geändert.
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Tom,
Aber sauber ist es nicht und Probleme in "anderen Welten" sind vorprogrammiert.
Viele Grüße,
Martin
das stimmt so pauschal nicht! Sowohl Word als auch WordPad können Umlaute in RTF interpretieren und verarbeiten (ich mache meine RTF-Dateien selber und haue den Text nur mit ConvToAnsiCp() in diese Dateien).Tom hat geschrieben:RTF beherrscht ßs nicht, genausowenig wie HTML, jedenfalls nicht als direkt repräsentiertes Zeichen.
Aber sauber ist es nicht und Probleme in "anderen Welten" sind vorprogrammiert.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Umlaute
Hi Manfred,
wie wäre es, wenn du das gelieferte Zeichen mit strtran als Chr(225) ersetzt. Chr(225) ist ja "ß"
wie wäre es, wenn du das gelieferte Zeichen mit strtran als Chr(225) ersetzt. Chr(225) ist ja "ß"
-
- UDF-Programmierer
- Beiträge: 54
- Registriert: Sa, 07. Jan 2006 17:30
- Wohnort: Braunschweig
- Kontaktdaten:
Hallo nochmal,
ich hab jetzt alles mögliche probiert. Mit StrTran("Vo*","ß","s") wird daraus beim RTF-Druck ein "Vos". Das Zeichen * muss also ein ß sein, sonst würde ja nicht getauscht. Nur in der Datei steht der Stern. Wenn ich "\`df" als Austausch angebe, dann steht im Text Vo\'df und das kanns ja auch nicht sein. Was gibts da noch für Möglichkeiten, die übersehen habe?
Schönen Gruß
Manfred
ich hab jetzt alles mögliche probiert. Mit StrTran("Vo*","ß","s") wird daraus beim RTF-Druck ein "Vos". Das Zeichen * muss also ein ß sein, sonst würde ja nicht getauscht. Nur in der Datei steht der Stern. Wenn ich "\`df" als Austausch angebe, dann steht im Text Vo\'df und das kanns ja auch nicht sein. Was gibts da noch für Möglichkeiten, die übersehen habe?
Schönen Gruß
Manfred
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Kuhno,
sicherheitshalber möchte ich fragen ob ich richtig verstanden habe, dass die Zeichen aus der PostGreSQL auch mit Umlauten sauber in der GUI Oberfläche (Xbparts von XbpDialog etc.) angezeigt werden.
Dein Problem bezieht sich auf das Drucken von RTF Dateien oder ?
Ich würde mal diesen RTF Quellcode abspeichern und mit z.B. Word oder WordPad öffnen und drucken. Sind dort auch die Fehler vorhanden ?
So könnte man sich dem Fehler nähern.
sicherheitshalber möchte ich fragen ob ich richtig verstanden habe, dass die Zeichen aus der PostGreSQL auch mit Umlauten sauber in der GUI Oberfläche (Xbparts von XbpDialog etc.) angezeigt werden.
Dein Problem bezieht sich auf das Drucken von RTF Dateien oder ?
Ich würde mal diesen RTF Quellcode abspeichern und mit z.B. Word oder WordPad öffnen und drucken. Sind dort auch die Fehler vorhanden ?
So könnte man sich dem Fehler nähern.
Gruß
Hubert
Hubert
-
- UDF-Programmierer
- Beiträge: 54
- Registriert: Sa, 07. Jan 2006 17:30
- Wohnort: Braunschweig
- Kontaktdaten:
Hallo Hubert,
Gruß
Manfred
Ja, dieser Fehler tritt in der GUI nicht auf.sicherheitshalber möchte ich fragen ob ich richtig verstanden habe, dass die Zeichen aus der PostGreSQL auch mit Umlauten sauber in der GUI Oberfläche (Xbparts von XbpDialog etc.) angezeigt werden.
Ja, nur beim Druck in die RTF-Datei. Mit Open Office Writer und mit WordPad sind die Fehler (statt ß ein * ) identisch.Dein Problem bezieht sich auf das Drucken von RTF Dateien oder ?
Gruß
Manfred
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Also wenn du in OpenOffice Writer oder WordPad ein Dokument erstellst, das unter RTF abspeicherst und dann druckst, hast du dann auch den Fehler ?kuhno hat geschrieben:Ja, nur beim Druck in die RTF-Datei. Mit Open Office Writer und mit WordPad sind die Fehler (statt ß ein * ) identisch.
Wenn ja, ist dein Druckertreiber nicht OK.
Gruß
Hubert
Hubert