在使用Java連接MySQL的過程中,默認(rèn)的字符集是Latin1,如果想要使用UTF-8等字符集,需要進(jìn)行一些設(shè)定。
首先,在連接MySQL時(shí)需要指定useUnicode和characterEncoding兩個(gè)參數(shù),指定使用Unicode編碼,并設(shè)定字符集為UTF-8。
Connection conn = null; String url = "jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "root"; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); }
其次,還需要在MySQL的配置文件my.cnf中進(jìn)行設(shè)定。
[client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci
以上是最基本的設(shè)定,如果MySQL中有使用其他字符集的表或字段,還需要對這些表或者字段進(jìn)行設(shè)定。
例如,如果要對表中的字段設(shè)定為gbk字符集:
ALTER TABLE person MODIFY name varchar(50) CHARACTER SET gbk;
綜上所述,只有在Java代碼和MySQL配置文件中同時(shí)進(jìn)行字符集設(shè)定,才能保證數(shù)據(jù)庫操作的正確性和準(zhǔn)確性。