Page 1 of 1
Java+MySQL+Ελληνικά
Posted: Wed Sep 19, 2007 3:11 pm
by p3040074
Μπορεί κάποιος να βοηθήσει; Χρησιμοποιώ τον MySQL και εχω ένα πρόγραμμα σε java(όχι για διαδίκτυο) και έχω μέσα στο παράθυρο textfields και buttons ώστε να μου εμφανίζει τα περιεχόμενα των εγγραφών απο τη βάση δεδομένων αλλά και να κάνω εγγραφή νέας εγγραφής στη βάση. Έχω δοκιμάσει πολλά πράγματα όσο αναφορά την κωδικοποίηση στη βάση τελικά το άφησα utf8 επειδή με php δουλεύει μια χαρά. Δοκίμασα επίσης να αλλάζω την κωδικοποίηση μέσα στο πρόγραμμα java γιατί σίγουρα εκεί είναι το πρόβλημα. Τίποτα... Δοκίμασα μέσα στο πρόγραμμα και άλλα encodings τίποτα. Συνεχίζει μέσα στα textboxes να μού βγάζει ????? αντί για τα δεδομένα στα ελληνικά. Πάντως με αγγλικούς χαρακτήρες δεν έχει πρόβλημα. Το έχει καταφέρει κανείς να μου στείλε ένα μικρό παράδειγμα κώδικα; Δεν μπορεί να μην γίνεται.. Έχω απελπιστεί. Μέχρι και με την MySQL επικοινώνησα αλλά κανένα αποτέλεσμα. Πάντως στα windows java και MSSQL και ελληνικά δουλεύουν μια χαρά. Windows ή Linux + MySQL + JAVA όχι!
Posted: Wed Sep 19, 2007 3:26 pm
by P3
Στο control Panel- Regionla Settings- στο τελευταίο tab έχεις επιλεγμένο το Greek???
Posted: Wed Sep 19, 2007 6:01 pm
by p3040074
Ναι τα ελληνικά είναι επιλεγμένα.
Posted: Wed Sep 26, 2007 11:19 am
by tara
δεν ξερω αν θα σε βοηθησω αλλά πρέπει η σύνδεση στην βάση να γίνεται με utf-8. Ας πούμε αν συνδέεσαι απο κονσόλα πρέπει να συνδεθείς έτσι:
Code: Select all
mysql --character-sets-dir=/usr/share/mysql/charsets --default-character-set=utf8
όπου dir ο φάκελος όπου βρίσκονται τα αρχεία των κωδικοποιήσεων.
Αν συνδέεσαι με php πρέπει μετά το connect να δώσεις την εντολή
Οπότε λογικά μετά την σύνδεσή σου στην βάση τρέξε το query set names utf8.
Πιστευω θα παιξει έτσι.
Posted: Wed Sep 26, 2007 12:27 pm
by p3040074
tara όλα αυτά που μου είπες τα έχω κάνει και έτσι μπορώ και δουλεύω php,perl και python με MySQL και εληνικά. Μόνο η java δεν θέλει. Για την ακρίβεια κατάφερα και μπορεί να εμφανίζει μέσα στα JTextfield τα ελληνικά όταν διαβάζει από τη βάση.(δεδομένα δηλαδή που έχουν εισαχθεί από άλλο πρόγραμμα μου(perl,python,php) αλλά όταν κάνω εγγραφή στη db τη συγκεκριμένη εγγραφή που τη κάνω μέσω του java προγράμματος την εμφανίζει με ??????. Δοκίμασα να αλλάζω την κωδικοποίηση στα strings Που διαχειρίζονται τις τιμές που ανταλλάσσω με την MySQL πάλι δεν διαβάζει ελληνικά βγάζει άσχετους λατινικούς χαρακτήρες. Μάλλον θα τα παρατήσω όσο αναφορά JAVA + MySQL. Δεν μπορώ να σκεφτώ κάτι άλλο. Πάντως όποιος θέλει να εκμεταλευτεί τις δυνατότητες της MySQL με ελληνικά σε ιστοσελίδα, perl + cgi, python scripts και κλασικά php δουλεύουν μια χαρά τα ελληνικά με την MySQL.

bye!
merged
Κάτι επιπλέον. Αν κάποιος θέλει να αναπτύξει πρόγραμμα στα windows και θέλει να το γράψει σε JAVA. Ο MSSQL και η JAVA και τα ελληνικά συνεργάζονται μια χαρά.
Posted: Thu Sep 27, 2007 12:05 am
by tara
υποθετω το εχεις δει αυτο ε ?νομιζω στο τελος λεει μια λυση που δουλεψε σε κανα δυο τυπους.
http://bugs.mysql.com/bug.php?id=3114
Posted: Thu Sep 27, 2007 10:19 am
by p3040074
:( ναι tara το έχω δοκιμάσει. Τα ίδια... Και μετά από τόση προσπάθεια διαπίστωσα ότι δεν φταίει σε τίποτα η db. Κάτι με την java δεν πάει καλά όσο αναφορά την κωδικοποίηση. Αφού οι ίδιες εγγραφές που είναι στα ελληνικά τα script μου σε perl,python και php τα διαβάζουν μια χαρά.
Posted: Thu Sep 27, 2007 11:05 am
by p3040074
Εύρηκα... Δεν χρειάζονται ούτε κωδικοποιήσεις στην java ούτε τίποτα. Όποιος ενδιαφέρεται για το θέμα φτιάχνει την φόρμα του με swing awt ότι κάνει κέφι κάνει την σύνδεση στον mysql server. Και τα αφήνει όπως είναι.(δεν χρειάζεται new String(byte[],charset)), η mysql by default κάνει install την κωδικοποίηση latin
αν λοιπόν κάποιος προσπαθήσει να το αλλάξει κατόπιν εορτής με set charset utf8 και set collation κλπ δεν κάνει τίποτα παρά μια τρύπα στο νερό. Η java χρησιμοποιεί by default utf8. Επομένως τι έκανα;; Διέγραψα τον mysql server και τον ξανά εγκατέστησα με προεπιλεγμένη κωδικοποίηση utf8!!! voila! ΛΕΙΤΟΥΡΓΕΙ.. Να και κάτι τελικά που δεν είχα δοκιμάσει.. Ένα πράγμα δεν έχω καταλάβει ακόμα, γιατί όταν αποφασίζεις να παρατήσεις κάτι που έψαχνες να βρεις τότε βρίσκεις τη λύση lol :>