Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Umlaute // Lazarus 1.4.2 mit Datenbank (https://www.delphipraxis.net/186609-umlaute-lazarus-1-4-2-mit-datenbank.html)

manfred_h 16. Sep 2015 10:30

Umlaute // Lazarus 1.4.2 mit Datenbank
 
Hallo zusammen

Ich habe ein Problem mit einer Datenbankanwendung.
Alle Umlaute und div. Sonderzeichen éàè werden mit Fragezeichen oder falschen Symbolen dargestellt.
Auf die Datenbank wird schon mittels einer Delphi-Anwendung erfolgreich zugegriffen.
In Delphi werden mit der gleichen Komponente die Umlaute korrekt dargestellt.

Ich verwende die DataAbstract komponenten für den Zugriff auf eine MySQL Datenbank.
http://www.dataabstract.com/da/default.aspx

Ich habe schon sehr viel darüber gelesen:
http://www.delphipraxis.net/157654-t...-inhalt-2.html
http://wiki.freepascal.org/LCL_Unicode_Support/de

Allerdings wird immer wieder geschrieben das ich z.B. dies machen kann:
Delphi-Quellcode:
var
  MyString: string; // ansi encoded
begin
  MyString := SomeRTLRoutine;
  MyTEdit.Text := AnsiToUTF8(MyString);
end;
Bei meiner Datenbank Anwendung setzt ich DBEdit Felder ein die in sehr grosser Zahl vorhanden sind ein... Wie könnte ich das Zentral lösen.

p80286 16. Sep 2015 12:06

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Zitat:

Zitat von manfred_h (Beitrag 1315947)
Alle Umlaute und div. Sonderzeichen éàè werden mit Fragezeichen oder falschen Symbolen dargestellt.
Auf die Datenbank wird schon mittels einer Delphi-Anwendung erfolgreich zugegriffen.
In Delphi werden mit der gleichen Komponente die Umlaute korrekt dargestellt.

Wahrscheinlich bin ich zu wenig flexibel, Darum was denn nun? Geht's oder Geht's nicht?

Erste Frage: Welche Zeichenkodierung wird genutzt?
Zweite Frage: Welcher Font wird genutzt?

Gruß
K-H

TraumTaenzerDieter 16. Sep 2015 12:44

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Dritte Frage: welche Zugriffs-Komponenten?
Vierte Frage: welche MySql-Version?

manfred_h 16. Sep 2015 14:02

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
>> K-H
Zitat:

Geht's oder Geht's nicht?
Es geht in Lazarus nicht. :wink: Die Erklärung mit Delphi machte ich um aufzuzeigen das die Verbindung Serverseitig ok ist.

Zitat:

Erste Frage: Welche Zeichenkodierung wird genutzt?
DEFAULT_CHARSET
Zitat:

Zweite Frage: Welcher Font wird genutzt?
default ( muss noch nachschauen was default ist... Sorry )


>> TraumTaenzerDieter
Zitat:

Dritte Frage: welche Zugriffs-Komponenten?
Steht doch oben... :wink: DataAbstract

Zitat:

Vierte Frage: welche MySql-Version?
Database server version 5.5.44

p80286 16. Sep 2015 15:20

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Zitat:

Zitat von manfred_h (Beitrag 1315968)
default ( muss noch nachschauen was default ist... Sorry )

:thumb: Gute Idee.
Es gibt einige Fonts, die sind Über die US-ASCII-Zeichen nie hinaus gekommen.

Ebenfalls ein guter Ansatz, welche (Byte)Werte sollen angezeigt werden? Wenn die in Ordnung sind, kann man sich Frage 3 und 4 und die nach dem DB Zeichensatz sparen.

Gruß
K-H

Bernhard Geyer 16. Sep 2015 15:40

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Zitat:

Zitat von p80286 (Beitrag 1315981)
Zitat:

Zitat von manfred_h (Beitrag 1315968)
default ( muss noch nachschauen was default ist... Sorry )

:thumb: Gute Idee.
Es gibt einige Fonts, die sind Über die US-ASCII-Zeichen nie hinaus gekommen.

Wenn der Font nicht passt wird oft ein leeres Rechteck angezeigt.
Fragezeichen und falsche Symbole deuten darauf hin das in der gewählten Kombination noch ein UTF8-Wandlungsproblem (Zu Viel/Zu wenig/Falscher Stringtyp) vorliegt.
MySQL hat AFAIK ab V4 keine Probleme mehr mit Unicode.

manfred_h 16. Sep 2015 16:08

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
[QUOTE=p80286;1315981]
Zitat:

Zitat von manfred_h (Beitrag 1315968)
Es gibt einige Fonts, die sind Über die US-ASCII-Zeichen nie hinaus gekommen.

Ebenfalls ein guter Ansatz, welche (Byte)Werte sollen angezeigt werden? Wenn die in Ordnung sind, kann man sich Frage 3 und 4 und die nach dem DB Zeichensatz sparen.

Der Default Font ( hiermit ermittelt: Form1.Caption:=GetFontData(Form1.Font.Handle).Name ; )
Segoe UI
Ist mir nicht klar wo dieser angepasst werden könnte...

Zitat:

Ebenfalls ein guter Ansatz, welche (Byte)Werte sollen angezeigt werden?
Sorry, Diese Frage verstehe ich nicht ganz.
Also dargestellt werden könne sollte eingentlich Europäische Zeichen:
Alle Umlaute und div. Sonderzeichen éàèçöäü

manfred_h 16. Sep 2015 16:49

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Habe eben noch einen Test gemacht.

Wenn ich folgende Werte in Der Lazarus Anwendung eingebe:
Test öäü éàèç
Werden diese in MySQL wie folgt gespeichert:
Test öäü éÃ*èç

In Der Lazarus-Anwendung erscheinen sie aber korrekt als Test öäü éàèç.

Edit: Mit einem Online UTF8 decoder erhalte ich wieder die richtigen Zeichen...
Wo könnte dies generell umgestellt werden..

p80286 17. Sep 2015 11:47

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Zitat:

Zitat von manfred_h (Beitrag 1315991)
Zitat:

Ebenfalls ein guter Ansatz, welche (Byte)Werte sollen angezeigt werden?
Sorry, Diese Frage verstehe ich nicht ganz.
Also dargestellt werden könne sollte eingentlich Europäische Zeichen:
Alle Umlaute und div. Sonderzeichen éàèçöäü

Es werden keine Zeichen gespeichert sondern ihre Kodierung z.B. x20 für das Leerzeichen. Je nach verwendetem Zeichensatz kann der gleiche Wert unterschiedlich dargestellt werden, wenn Du Dich bzw. Dein Programm sich auf 8Bit-Codierung beschränkt. UTF8 ist eine Erweiterung der 8Bit-Kodierung. Hier entsprechen die Werte von 0-127 der ANSI-Kodierung. Höhere Werte leiten meist eine Wertesequenz ein, bei der zwei oder mehr Werte ein Zeichen darstellen.
hier findest Du mehr dazu.
Der nächste Schritt ist dann UTF16 bei dem jedes Zeichen durch zwei Byte bzw. ein Word (oder ein mehrfaches falls nötig)repräsentiert wird.

Zeichen (dargestellt oder nicht) sind nur die Interpretation von Werten. Im Zweifel kommst Du an einem Hex-Editor nicht vorbei.

Gruß
K-H

Bernhard Geyer 17. Sep 2015 12:47

AW: Umlaute // Lazarus 1.4.2 mit Datenbank
 
Zitat:

Zitat von manfred_h (Beitrag 1315996)
Habe eben noch einen Test gemacht.

Wenn ich folgende Werte in Der Lazarus Anwendung eingebe:
Test öäü éàèç
Werden diese in MySQL wie folgt gespeichert:
Test öäü éÃ*èç

In Der Lazarus-Anwendung erscheinen sie aber korrekt als Test öäü éàèç.

Edit: Mit einem Online UTF8 decoder erhalte ich wieder die richtigen Zeichen...
Wo könnte dies generell umgestellt werden..

Schaut danach aus als würde deine Kombination Lazarus + DB-Treiber einmal zu viel UTF8-Wandeln.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz