開始之前,對不起我的英文。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)
...
什麼,我做錯了什麼?
我想你應該選擇UTF8斌,編碼你所有的mysql表格。 –