2013-12-23 42 views
0

開始之前,對不起我的英文。MySQL數據庫編碼

我有一個MySQL的問題。我創建數據庫,並將編碼字符串更改爲latin2。從Java查詢:

`INSERT INTO infos VALUES (NULL, '100001486491198', 'ęłóżźćść[email protected]#', '2013-12-23 11:24:37', 0, 0, 0);` 

在數據庫中看起來像「???????」。我在phpMyAdmin中將此字符串更改爲targen,並且當我執行SELECT查詢時,我得到相應的字符串作爲響應。

而且我這個代碼添加到數據庫連接:

 Properties properties = new Properties(); 
     properties.put("user", DBUSER); 
     properties.put("password", DBPASS); 
     properties.put("characterEncoding", "ISO-8859-2"); 
     properties.put("useUnicode", "true"); 

    try { 
     Class.forName(DBDRIVER).newInstance(); 
     connection = DriverManager.getConnection(DBURL, properties); 
     statement = connection.createStatement(); 
    } 
    catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) { 
     e.printStackTrace(); 
    } 

但作爲迴應,我得到錯誤:

java.sql.SQLException: Incorrect string value: '\xB3\xF3\xBF\xBC\xE6\xBF...' for column 'content' at row 1 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4190) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4122) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) 
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1811) 
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1725) 
    at com.mpkinfo.server.database.Database.add(Database.java:48) 
    ... 

什麼,我做錯了什麼?

+0

我想你應該選擇UTF8斌,編碼你所有的mysql表格。 –

回答

0

如果使用unicode字符,請將所有表和文件編碼設置爲utf-8。

+0

它有幫助,謝謝。 – kris14an

0

我會建議你使用UTF8,但是如果你堅持ISO-8859-2,你有你的DBURL改變模樣:

jdbc:mysql://localhost:3306/yourDatabase?useUnicode=falsee&characterEncoding=ISO-8859-2 
+0

我改變之前,同樣的迴應。但是UTF-8有幫助。謝謝 – kris14an

+0

如果utf有幫助,請使用:jdbc:mysql:// localhost:3306/yourDatabase?useUnicode = true&characterEncoding = utf-8 – user987339

+0

在URL中設置屬性和使用Properties類有什麼不同? – kris14an