java - MySQL - question marks -


when inserting app chinese characters written db '???'. needless works fine within built in command line mysql client.

connection string:

--user-db-uri = jdbc:mysql://localhost/tigasedb?user=tigase_user&password=tigase_passwd&useunicode=true&characterencoding=utf8&noaccesstoprocedurebodies=true

code:

try {             conn_valid_st.setquerytimeout(query_timeout);             st = conn.preparestatement("set character_set_client = utf8");             st.execute();             st.close();             st = conn.preparestatement("set character_set_connection = utf8");             st.execute();             st.close();             st = conn.preparestatement("set character_set_results = utf8");             st.execute();             st.close();             st = conn.preparestatement("set collation_connection = utf8_general_ci");             st.execute();             st.close();             st = conn.preparestatement("set names utf8");             st.execute();             st.close();             st = conn.preparestatement("set character set utf8");             st.execute();             st.close();         } catch (sqlexception ex) {             // ignore now, seems postgresql not support method             // call yet             if (null != st)                 st.close();              log.log(level.warning, "db server said: {0}", ex.tostring());         } 

what eludes me ?

edit:

create table ... engine=innodb default character set utf8 collate utf8_unicode_ci row_format=dynamic;

inserted characters: 在健身房

verification done built in command line mysql client.

edit: http://docs.oracle.com/cd/e17952_01/refman-5.0-en/connector-j-reference-charsets.html did not help

check value of system property "file.encoding". if not "utf-8", need explicitly specify "utf-8" character encoding whenever decode bytes characters. example, when call string constructor byte[], or use inputstreamreader.

problems reading/writing utf-8 data in mysql java using jdbc connector 5.1 - did not help

declared string variables in stored procedures _loc varchar(128) charset utf8 - did not help

your database table column should created proper charset , collation. can define theit while creating or altering table:

col_name {char | varchar | text} (col_length)     [character set charset_name]     [collate collation_name] 

here mysql link learn more it:

http://dev.mysql.com/doc/refman/5.0/en/charset-column.html


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -