MySQL + Qt4 πρόβλημα character set

Theodore Lytras thlytras at gmail.com
Fri Feb 20 14:50:46 EET 2009


Μια ερώτηση, γιατί κοντεύει να μου στρίψει και δε βρίσκω άκρη.......

Φτιάχνω ένα εφαρμογίδιο με Qt4, το οποίο επικοινωνεί με μια βάση
δεδομένων mysql και διαβάζει (και κάνει edit) ένα πίνακα της βάσης.
Κάνει χρήση των κλάσεων QSqlDatabase, QSqlTableModel και QTableView,
και η έμπνευση προήλθε από το tutorial του αγαπητού Δημήτρη Καλαμαρά
(http://dimitris.apeiro.gr/2008/10/07/qt-μέρος-iι-βάσεις-δεδομένων/)...

Το πρόβλημά μου είναι πως ότι και να κάνω, δε βλέπω ελληνικά στην εφαρμογή μου.

Δημιουργώ τον πίνακα με το mysql monitor, και ορίζω CHARACTER SET utf8
COLLATE utf8_general_ci .

Οι (με ελληνικούς χαρακτήρες) εγγραφές που περνώ στον πίνακα με το
mysql monitor, εμφανίζονται στην εφαρμογή Qt σαν ιερογλυφικά (βλέπε
συνημμένο), ενώ οι ίδιες εγγραφές που περνώ με την εφαρμογή
εμφανίζοναι στο mysql monitor σαν ερωτηματικά.

Είναι δε ενδιαφέρον οτι οι εγγραφές που περνώ με την εφαρμογή, αν
κλείσω και ξανανοίξω την εφαρμογή, εμφανίζονται κανονικά με ελληνικούς
χαρακτήρες. Άρα αυτό μου λέει οτι "σε επίπεδο byte" αποθηκεύονται
κανονικά και διαβάζονται κανονικά, αλλά υπάρχει κάποια "δυσαρμονία"
στο encoding μεταξύ Qt και mysql. Ποιά όμως, αφού και τα δύο δουλεύουν
με UTF8????

Ακόμη πιο ενδιαφέρον είναι οτι το ίδιο ακριβώς παρουσιάζεται όταν
δημιουργήσω τον πίνακα με CHARACTER SET latin1 COLLATE
latin1_general_ci . Και εδώ μπαίνω σε σκέψεις: μήπως η mysql ότι κι αν
της πω εγώ, με αγνοεί και δουλεύει με latin1 charset? Άλλωστε και με
το mysqldump, όταν παίρνουμε backup, είναι γνωστό οτι για να φανούν τα
ελληνικά ορίζουμε την παράμετρο --default-character-set=latin1 . Μήπως
αυτό είναι το πρόβλημα??

Και αν είναι αυτό το πρόβλημα, πως διάολο θα πω στην Qt οτι αυτό που
διαβάζει δεν είναι UTF8 και πρέπει να κάνει μετατροπή?? Δε βρίσκω
κάποια σχετική συνάρτηση στα docs......

Please help...

Θοδωρής
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ieroglyfika.png
Type: image/png
Size: 1118 bytes
Desc: not available
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20090220/12588b54/attachment.png>


More information about the Linux-greek-users mailing list