需要确保以下几点:
1、数据库的字符集设置正确。在创建数据库时,应该使用UTF-8字符集,并且确保数据库的默认字符集也是UTF-8。可以使用以下命令创建数据库:
CREATE DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
2、在连接数据库时,确保使用UTF-8字符集。可以在连接字符串中添加 "characterEncoding=UTF-8" 参数来实现。例如:
jdbc:mysql://localhost:3306/database_name?characterEncoding=UTF-8
3、Java代码中,确保使用UTF-8编码。可以在读取或写入数据时使用InputStreamReader或OutputStreamWriter,并指定UTF-8编码。例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
如果在进行上述设置后仍然出现亂码的情况,可以尝试打印出SQL语句,检查一下是否存在乱码。
你的java项目工程文件是什么编码?连接数据库的URL你是怎么写的?
建议你看下这篇实例【java连接mysql数据库乱码的解决方法】,里面详细分析了5种思路方法,链接:https://www.jb51.net/article/37054.htm
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
java
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";
我记得mysql 5.1版本在数据库url上指定编码是不好使的,所以需要在配置文件里加上这些指定字符为utf8,然后重启mysql服务
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
首先,您需要确保数据库的字符集是 utf8,因为 utf8 可以支持中文字符。您可以在数据库的配置文件中设置 character-set-server=utf8,或者在创建数据库时使用 CREATE DATABASE database_name DEFAULT CHARACTER SET utf8。
其次,您需要确保 Java 程序连接数据库时使用的字符集是 utf8。您可以在连接字符串中设置 characterEncoding=utf8,例如:jdbc:mysql://localhost:3306/database_name?characterEncoding=utf8。
最后,您需要确保您的 Java 程序中的字符集是 utf8。您可以在程序中设置字符集,例如:
String sql = "INSERT INTO table_name (column_name) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "不動產實用面積單位平方英尺(9位)");
pstmt.execute Update();
最后,如果仍然无法解决问题,可以尝试调试代码,打印出 SQL 语句并检查是否正确,也可以在 MySQL 中执行相同的 SQL 语句,查看数据是否存储正确。
我知道,绝对解决。
一个是程序方面用utf8
另外是表用utf8
第三个至关重要数据库表的字符串属性必须要用utf8
三者绝对可以解决。
后面两个用mysqlworkbench可以傻瓜式选择
一搬是第三个问题,下载wotkbench选择utf8绝对可以解决,请采纳
连接上MySQL数据库后,使用以下命令检查一下数据库的字符集。
show global variables like '%character%';
看是否存在字符集的默认值为 latin1 的情况,这种情况下存储的中文内容在读取的时候会乱码
重新设置下mysql编码,再次连接试试