Java+MySQL+Ελληνικά
-
- bit level
- Posts: 24
- Joined: Mon Dec 18, 2006 9:16 am
- Academic status: N>4
- Gender: ♂
- Location: ATHENS
- Contact:
Java+MySQL+Ελληνικά
Μπορεί κάποιος να βοηθήσει; Χρησιμοποιώ τον MySQL και εχω ένα πρόγραμμα σε java(όχι για διαδίκτυο) και έχω μέσα στο παράθυρο textfields και buttons ώστε να μου εμφανίζει τα περιεχόμενα των εγγραφών απο τη βάση δεδομένων αλλά και να κάνω εγγραφή νέας εγγραφής στη βάση. Έχω δοκιμάσει πολλά πράγματα όσο αναφορά την κωδικοποίηση στη βάση τελικά το άφησα utf8 επειδή με php δουλεύει μια χαρά. Δοκίμασα επίσης να αλλάζω την κωδικοποίηση μέσα στο πρόγραμμα java γιατί σίγουρα εκεί είναι το πρόβλημα. Τίποτα... Δοκίμασα μέσα στο πρόγραμμα και άλλα encodings τίποτα. Συνεχίζει μέσα στα textboxes να μού βγάζει ????? αντί για τα δεδομένα στα ελληνικά. Πάντως με αγγλικούς χαρακτήρες δεν έχει πρόβλημα. Το έχει καταφέρει κανείς να μου στείλε ένα μικρό παράδειγμα κώδικα; Δεν μπορεί να μην γίνεται.. Έχω απελπιστεί. Μέχρι και με την MySQL επικοινώνησα αλλά κανένα αποτέλεσμα. Πάντως στα windows java και MSSQL και ελληνικά δουλεύουν μια χαρά. Windows ή Linux + MySQL + JAVA όχι!
δεν ξερω αν θα σε βοηθησω αλλά πρέπει η σύνδεση στην βάση να γίνεται με utf-8. Ας πούμε αν συνδέεσαι απο κονσόλα πρέπει να συνδεθείς έτσι:
όπου dir ο φάκελος όπου βρίσκονται τα αρχεία των κωδικοποιήσεων.
Αν συνδέεσαι με php πρέπει μετά το connect να δώσεις την εντολή
Οπότε λογικά μετά την σύνδεσή σου στην βάση τρέξε το query set names utf8.
Πιστευω θα παιξει έτσι.
Code: Select all
mysql --character-sets-dir=/usr/share/mysql/charsets --default-character-set=utf8
Αν συνδέεσαι με php πρέπει μετά το connect να δώσεις την εντολή
Code: Select all
set names utf8;
Πιστευω θα παιξει έτσι.
-
- bit level
- Posts: 24
- Joined: Mon Dec 18, 2006 9:16 am
- Academic status: N>4
- Gender: ♂
- Location: ATHENS
- Contact:
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 και τα ελληνικά συνεργάζονται μια χαρά.

merged
Κάτι επιπλέον. Αν κάποιος θέλει να αναπτύξει πρόγραμμα στα windows και θέλει να το γράψει σε JAVA. Ο MSSQL και η JAVA και τα ελληνικά συνεργάζονται μια χαρά.
υποθετω το εχεις δει αυτο ε ?νομιζω στο τελος λεει μια λυση που δουλεψε σε κανα δυο τυπους.
http://bugs.mysql.com/bug.php?id=3114
http://bugs.mysql.com/bug.php?id=3114
-
- bit level
- Posts: 24
- Joined: Mon Dec 18, 2006 9:16 am
- Academic status: N>4
- Gender: ♂
- Location: ATHENS
- Contact:
Εύρηκα... Δεν χρειάζονται ούτε κωδικοποιήσεις στην 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 :>
αν λοιπόν κάποιος προσπαθήσει να το αλλάξει κατόπιν εορτής με set charset utf8 και set collation κλπ δεν κάνει τίποτα παρά μια τρύπα στο νερό. Η java χρησιμοποιεί by default utf8. Επομένως τι έκανα;; Διέγραψα τον mysql server και τον ξανά εγκατέστησα με προεπιλεγμένη κωδικοποίηση utf8!!! voila! ΛΕΙΤΟΥΡΓΕΙ.. Να και κάτι τελικά που δεν είχα δοκιμάσει.. Ένα πράγμα δεν έχω καταλάβει ακόμα, γιατί όταν αποφασίζεις να παρατήσεις κάτι που έψαχνες να βρεις τότε βρίσκεις τη λύση lol :>