Java向mysql寫入的數(shù)據(jù)出現(xiàn)亂碼是一個常見的問題,通常是因為編碼不一致導致的。
//連接數(shù)據(jù)庫 Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(url, username, password); PreparedStatement statement = connection.prepareStatement("INSERT INTO table (content) VALUES (?)"); //設置編碼為UTF-8 statement.setString(1, new String(content.getBytes("UTF-8"))); //執(zhí)行插入操作 statement.executeUpdate(); //關閉連接 statement.close(); connection.close();
在插入數(shù)據(jù)之前,需要先對編碼進行設置,比如將編碼設置為UTF-8。此外,還需要注意數(shù)據(jù)庫和代碼中的編碼是否一致。如果數(shù)據(jù)庫使用的是GBK編碼而Java代碼中使用的是UTF-8編碼,則需要進行轉換。
除了編碼問題之外,還有可能是數(shù)據(jù)庫的字符集設置不正確導致的亂碼。可以通過以下語句進行設置:
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
以上語句將數(shù)據(jù)庫和表的字符集都設置為utf8,同時設置排序規(guī)則為utf8_general_ci,可以解決中文亂碼的問題。
總之,在Java向mysql寫入數(shù)據(jù)時,需要保證編碼一致,同時設置好數(shù)據(jù)庫的字符集和排序規(guī)則,才能避免中文亂碼的問題。