Java read utf8 from MySQL db

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 16 Δεκ 2008 13:01

Hello,
Auto einai to prwto mou post :P !
Loipon , to problima mou exei ws ekseis...
Prospathw na parw apo tn DB mou (MySQL 5.0) mia kataxorish h opoia einai typou UTF-8 kai na tn dosw san timi se ena String h estw na tn kanw print .Exw xrisimopoihsei 15 diaforetikous tropous apo FileInputStream , ByteArrayInputStream PrintReader , alla tpt sinexizei na mou vgazei ????? an dilonw sto Reader (h sto .getBytes("UTF-8")) "UTF-8".H an dn to kanw auto mou epistrefei alla ntalon simvola pali .Anyway,mporei kapoios na me voithisei ...Exw ftash se simio na skeftomai na xrisimopoihsw Access :( !
HEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEELP !!!!!!!!!

dimis283
Δημοσιεύσεις: 118
Εγγραφή: 12 Ιουν 2006 00:53

Java read utf8 from MySQL db

Δημοσίευση από dimis283 » 07 Ιαν 2009 21:17

Δοκίμασες το "SET NAMES utf8" της sql?
Dimis

BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 09 Ιαν 2009 10:39

Mporei kapoios na kanei upload ena aplo paradigma me java kai mysql me db h opoia xrisimopoiei ellinikous xaraktires.Vasika me endiaferei to setarisma tis DB kai pws kanei anaktish stoixeiwn apo tn db mesw tis java.Gia na dw ti kanw lathos ...!!!!
PLS

dimis283
Δημοσιεύσεις: 118
Εγγραφή: 12 Ιουν 2006 00:53

Java read utf8 from MySQL db

Δημοσίευση από dimis283 » 09 Ιαν 2009 13:55

Εχεις βάλει το collation κλπ της βάσης των πινάκων και πεδίων σε utf8 utf_general_gi (η κάτι τέτοιο)?

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Java read utf8 from MySQL db

Δημοσίευση από cherouvim » 11 Ιαν 2009 18:39

Πως συνδέεσαι στη βάση; Δώσε μας το connection String.

BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 12 Ιαν 2009 10:57

cherouvim έγραψε:Πως συνδέεσαι στη βάση; Δώσε μας το connection String.
String connectionURL = "jdbc:mysql://localhost:3306/kam?user=;password=";
String psw=..;
String user=...;
.
.
.
connection = DriverManager.getConnection(connectionURL, user, psw);

Oso gia tn MySQL exw kanei character set utf8 mono to col pou xrisimopoiw ellinika kai den exw allaksei to my.ini (xrisimopoiw windows xp).Genika me to col pou xrisimopoiw latin dn exw provlima dld epikoinwnh mia xara h DB me to NetBeans , to provlima einai me to col pou exw kanei utf8.
Genika einai h prwth fora pou xrisimopoiw mysql .

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Java read utf8 from MySQL db

Δημοσίευση από cherouvim » 12 Ιαν 2009 11:21

Δοκίμασε αυτό:

Κώδικας: Επιλογή όλων

jdbc:mysql://localhost:3306/kam?useUnicode=true&characterEncoding=UTF-8

BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 12 Ιαν 2009 11:34

cherouvim έγραψε:Δοκίμασε αυτό:

Κώδικας: Επιλογή όλων

jdbc:mysql://localhost:3306/kam?useUnicode=true&characterEncoding=UTF-8
Xrisimopoihsa :

String connectionURL = "jdbc:mysql://localhost:3306/kam?useUnicode=true&characterEncoding=UTF-8;user=;password=";

kai sinexizei na mou dixnei "kinezika".

Kai meta tn metatroph :
byte[] b;
b = rs.getBytes("user_name");
nm=new String(b,"UTF8");
tf.setText("123 :"+nm );

Alla kai meta ...

Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder();
CharsetEncoder encoder = charset.newEncoder();
.
.
.

nm=rs.getString("user_name");
ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(nm));
CharBuffer cbuf = decoder.decode(bbuf);
String s = cbuf.toString();
ta.setText(s); // opou tf ena JTextField

Akoma xrisimopoihsa na kanw metatroph me InputStreamReader...alla pali tpt.
Malon to provlima mou einai sto configuration tis DB .
Ena .txt me code pou douleuei kai an ginete allo ena me ta katalila configurations tis DB tha me voithosoun poly , vasika h yperpliroforish tou web dn me voithise , genika oti xrisimopoihsa apetyxe.

Thanx in advance.

BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 13 Ιαν 2009 10:43

To provlima apo oti exw katalavei einai provlima tou decoding.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Java read utf8 from MySQL db

Δημοσίευση από cherouvim » 13 Ιαν 2009 10:46

Αν η βάση είναι εντάξει και έχεις συνδεθεί πάνω της σωστά τότε δεν χρειάζεται να κάνεις low level encoding μετατροπές.

Για την ακρίβεια, σε κανένα πρόγραμμα δεν πρέπει να κάνεις τέτοιες μετατροπές.

BeyondLord
Δημοσιεύσεις: 6
Εγγραφή: 16 Δεκ 2008 12:09

Java read utf8 from MySQL db

Δημοσίευση από BeyondLord » 13 Ιαν 2009 12:05

cherouvim έγραψε:Αν η βάση είναι εντάξει και έχεις συνδεθεί πάνω της σωστά τότε δεν χρειάζεται να κάνεις low level encoding μετατροπές.

Για την ακρίβεια, σε κανένα πρόγραμμα δεν πρέπει να κάνεις τέτοιες μετατροπές.
:( E tote ti simvenei ??? Giati dn exw problem me ta latin kai exw me ta utf8???Sto shell tis mysql(dn kserw an to ethesa swsta) ta vlepw mia xara ta colums !!!

kapamarou
Δημοσιεύσεις: 5
Εγγραφή: 21 Ιαν 2009 22:19

Java read utf8 from MySQL db

Δημοσίευση από kapamarou » 21 Ιαν 2009 22:31

μην κλαις υπαρχει λυση

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Java read utf8 from MySQL db

Δημοσίευση από virxen75 » 18 Φεβ 2009 01:39

Εμένα δουλεύει μια χαρά με αυτά:

1)σε περίπτωση που κατά την εγκατάσταση δεν είχες επιλέξει character set=utf8
έναρξη->προγραμματα-->MySql-->MySql server 5.0->Mysql server instance configuration wizard
next,επιλέγω mysql server 5 και next
reconfigure instance next
detailed configuration next
developer machine next
multifunctional database next next
decision support(dss)/olap
enable tcp/ip networking ,port number=3306,enable strict mode next
manual selected default character set/collation,character set=utf8 next next
ξετσεκάρω το modify security settings ,next ,execute

2)για να δημιουργήσεις νέο πίνακα όπου έχεις varchar πρέπει να προσθέσεις κάτι σαν αυτό:

//σε java code
stmt1.executeUpdate("CREATE TABLE objects
(`object_id` INTEGER NOT NULL,`object_number` INTEGER ,`object_name` VARCHAR(45) CHARACTER SET utf8 COLLATE utf8_general_ci ,
`facilities` VARCHAR(45) CHARACTER SET utf8 COLLATE utf8_general_ci ,
PRIMARY KEY (`object_id`))
ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci");


3)δες την κλάση σύνδεσης java - mysql

ελπίζω να βοήθησα.
Συνημμένα
connectToDatabase.rar
σύνδεση java-mysql
(734 Ψηφιολέξεις) Μεταφορτώθηκε 397 φορές

teo2403
Δημοσιεύσεις: 3
Εγγραφή: 21 Νοέμ 2010 23:00

Java read utf8 from MySQL db

Δημοσίευση από teo2403 » 21 Νοέμ 2010 23:24

Όπως είπαν και τα παιδιά πριν από εμένα, πρέπει να φροντίσεις ώστε το collation της MySQL να υποστηρίζει UTF-8. Αν θες, κατέβασε το GUI Tools από το site της MySQL (διατίθεται για Windows και Linux). Με το MySQL Admin, μπορείς να αλλάξεις το collation από GUI :

http://dev.mysql.com/downloads/gui-tools/5.0.html

Προσοχή, το character set μπορεί να τεθεί σε διάφορα επίπεδα (DB / Table / Column)

Τέλος, στο JDBC URL πρέπει να είναι της μορφής:
jdbc:mysql://localhost:3306/gnosis?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
Thodoris Panagopoulos
TP8 Software
http://wiki.tp8.dyndns.org

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης