Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Umlaute nicht richtig. MySQL über ADO (https://www.delphipraxis.net/193360-umlaute-nicht-richtig-mysql-ueber-ado.html)

zobien123 21. Jul 2017 09:20

Umlaute nicht richtig. MySQL über ADO
 
Hallo Zusammen:)

ich habe ein Programm für Excel Exports aus einer MySQL Datenbank. Die Verbindung habe ich mit ADO gemacht. Funktioniert auch alles. Nur die Umlaute werden nicht richtig dar gestellt. Gibt es irgendwo eine Einstellung, dass Umlaute richtig angezeigt werden?

Vielen Dank für eure Antworten:)



PS: Ich darf an der MySQL Datenbank nicht rum fummeln (gehört dem Kunden):lol:, darf die Daten erst dann verändern wenn ich sie mir gezogen habe.

Redeemer 21. Jul 2017 10:16

AW: Umlaute nicht richtig. MySQL über ADO
 
Grundsätzlich wäre es Beispiel-Output sinnvoll. Dann kann man dir auch sagen, was für ein Zeichensatz das ist.

zobien123 21. Jul 2017 10:18

AW: Umlaute nicht richtig. MySQL über ADO
 
Hier mal ein paar Beispiele:

Code:
Bitte ergänze in den Konfigurationen auch
Tätigkeit

NilsBremer 21. Jul 2017 10:28

AW: Umlaute nicht richtig. MySQL über ADO
 
Sieht nach UTF-8 aus, also könntest du Utf8ToAnsi verwenden um das zu konvertieren.

zobien123 21. Jul 2017 10:38

AW: Umlaute nicht richtig. MySQL über ADO
 
Zitat:

Sieht nach UTF-8 aus, also könntest du Utf8ToAnsi verwenden um das zu konvertieren.
Aber wo mach ich das? Also wann muss ich das konvertieren? :?::oops:Wie gesagt ich verbinde mich mit den ADO Komponenten zur MySQL Datenbank und die Daten kommen dann in ein ClientDataSet und das exportier ich dann mit einer eigenen Funktion. Wo muss ich denn jetzt die Daten mit Utf8ToAnsi konvertieren?:oops:

Bernhard Geyer 21. Jul 2017 10:39

AW: Umlaute nicht richtig. MySQL über ADO
 
Zitat:

Zitat von zobien123 (Beitrag 1377158)
Funktioniert auch alles. Nur die Umlaute werden nicht richtig dar gestellt.

Also Funktioniert doch nicht alles


Zitat:

Zitat von zobien123 (Beitrag 1377158)
Gibt es irgendwo eine Einstellung, dass Umlaute richtig angezeigt werden?

Klar. ADO komponenten rausschmeißen und native Zugriffskomponenten verwenden. (z.B. von DevArt oder in neueren Delphi die FireDac komponenten).
ADO sollte man (m.E.) nur für Zugriff auf MS SQL Server und Access verwenden. Für alle anderen DBMS gibts bessere Lösungen.

Zitat:

Zitat von NilsBremer (Beitrag 1377166)
Sieht nach UTF-8 aus, also könntest du Utf8ToAnsi verwenden um das zu konvertieren.

Wäre aber nur ein Workaroud der höchstwahrscheinlich nur auf Westeuropäischen Windows-Systemen funktioniert.

p80286 21. Jul 2017 10:53

AW: Umlaute nicht richtig. MySQL über ADO
 
Zitat:

Zitat von zobien123 (Beitrag 1377158)
ich habe ein Programm für Excel Exports aus einer MySQL Datenbank.

Was für ein Excel?

Eigentlich sollte Excel mit UTF-8 umgehen können.
Hast Du da irgendwelche Konvertierungsschritte? z.B. CSV -> Excel ?

Gruß
K-H

NilsBremer 21. Jul 2017 10:57

AW: Umlaute nicht richtig. MySQL über ADO
 
Zitat:

Zitat von zobien123 (Beitrag 1377167)
Zitat:

Sieht nach UTF-8 aus, also könntest du Utf8ToAnsi verwenden um das zu konvertieren.
Aber wo mach ich das? Also wann muss ich das konvertieren? :?::oops:Wie gesagt ich verbinde mich mit den ADO Komponenten zur MySQL Datenbank und die Daten kommen dann in ein ClientDataSet und das exportier ich dann mit einer eigenen Funktion. Wo muss ich denn jetzt die Daten mit Utf8ToAnsi konvertieren?:oops:

Ich würde sagen, wenn du deine Daten aus der Datenbank geholt hast und bevor du die wieder exportierst. Ist aber wirklich nur ein Workaround...
Delphi-Quellcode:
  // Zum Beispiel so:
  EinString := Utf8ToAnsi(DeinCds.FieldByName(EinFeld).AsString);

zobien123 21. Jul 2017 11:48

AW: Umlaute nicht richtig. MySQL über ADO
 
Hmm hat alles leider nicht so funktioniert:evil:. Also habe ich mal bisschen gegoogelt ob man das schon bei der SQL konvertieren kann - und ja kann man!

Code:
SELECT CONVERT(CAST(column as BINARY) USING utf8) as column FROM table

Trotzdem vielen Dank für die Antworten:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.

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