Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi UniDac - UniDump - Sonderzeichen (https://www.delphipraxis.net/192594-unidac-unidump-sonderzeichen.html)

user0815 3. Mai 2017 13:17

Datenbank: MariaDB • Version: 10.1.13 • Zugriff über: UniDac

UniDac - UniDump - Sonderzeichen
 
Hi,
ich habe eine Maria DB mit der Kollation utf8_general_ci. Typ der Tabellen ist: InnoDB.
In einer Sprachtabelle habe ich neben den deutschen Sonderzeichen: öäü auch Chinesische Schriftzeichen.
Ich sichere die Datenbank wie folgt (Auszugsweise):

Delphi-Quellcode:
var
  FBackupFilename: String;
  FConnection: TUniConnection;
  FUniDump: TUniDump;

...

    FConnection := TUniConnection.Create(nil);
    FConnection.Assign(aDBConnection); // an den Thread übergeben
    FConnection.SpecificOptions.Values['Charset'] := 'utf8';
    FConnection.SpecificOptions.Values['UseUnicode'] := 'true';
    FConnection.Connect;

...
   
    FUniDump := TUniDump.Create(nil);
    FUniDump.Connection := FConnection;
    FUniDump.TableNames := ''; // alle Tabellen
    FUniDump.BackupToFile(FBackupFilename);
Das Backup wird erzeugt. Die Kodierung der Datei (laut Notepad++) ist: UTF-8.
Aber die Daten werden nicht richtig exportiert.
Ich erhalte z.B.:
(1001, 'Löschen', 'Delete', 'åˆÂ*除'),
statt wie gewünscht
(1001, 'Löschen', 'Delete', '删除'),

Hat jemand ne Idee was ich wo einstellen, machen muss ?

Danke

jobo 3. Mai 2017 13:34

AW: UniDac - UniDump - Sonderzeichen
 
Bin kein Maria Spezi, aber die Kollation allein hilft vermutlich nicht. Die gilt doch für Vergleiche / Sortierung. Entscheidend ist m.E. der Character Set der die Symbole und Kodierung festlegt.
An der Ecke würde ich jedenfalls mal lossuchen.

Bernhard Geyer 3. Mai 2017 14:39

AW: UniDac - UniDump - Sonderzeichen
 
D.h. du öffnest mit Notepad++ und sieht noch UTF8-Codierte Daten.
Erg würde ein Doppelte "Ver-UTF8-tung durchgeführt"

user0815 3. Mai 2017 15:17

AW: UniDac - UniDump - Sonderzeichen
 
Ne.
Wenn man den Windows eigenen Editor öffnet, ein paar Zeichen eingibt und beim Speichern die Codierung auf "Unicode Big Endian" setzt, dann kann man diese Datei mit Wordpad++ öffnen und im Menü unter Kodierung wird "UCS-2 Big Endian" angezeigt.

Sollte ja richtig sein wenn eine Exportdatei mit chinesischen Zeichen als Kodierung UTF8 anzeigt.

TheMiller 3. Mai 2017 16:00

AW: UniDac - UniDump - Sonderzeichen
 
Hallo,

nicht nur die Datenbank/Tabelle mit UTF8 sein, sondern auch die Verbindung (Session) zwischen Client und Server. Auch kann man bei Notepad++ einstellen, wie die Kodierung angezeigt werden soll. Man kann dort also zwischen verschiedenen Kodierungen (UTF8 mit/ohne BOM etc) wechseln. Vllt hilft eine dieser Kurzinfos ja weiter.

user0815 4. Mai 2017 14:51

AW: UniDac - UniDump - Sonderzeichen
 
Mit der aktuellen UniDAC Version 7.0 (Trial) funktioniert das Backup.
Da muss ich wohl mal die Version updaten... ~460.-€ :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.

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