您的位置:首页 > 数据库 > MySQL

通过PreparedStatement往MySql数据库插入中文出现'?'乱码

2017-12-14 10:53 302 查看
在java中通过PreparedStatement向Mysql数据库中插入或修改中文字符时,


出现了“?”的乱码问题。经过查询资料,应该是数据库字符匹配的问题,

经过实践问题解决。共享出来希望能帮到更多的人,不足之处欢迎前来讨论。

环境:Mysql 8.5 64位

在DAO向Mysql数据库中传递数据时,出现?问题,要更改数据库最初连接时的参数。如

private String dbUrl="jdbc:mysql://localhost:3306/db_name?**characterEncoding=utf-8";**
private String dbUserName="root";
private String dbPassword="123456";
private String jdbcName="com.mysql.jdbc.Driver";

public Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
return con;
}


在数据库名称后面加一个?characterEncoding=utf-8”;后面跟?characterEncoding=gbk也可以,根据使用的字符集而定。问题就可以解决。

另外,在JAVA 中使用SERVLET无法解析中文字符时,可以使用

request.setCharacterEncoding("utf-8");


指定字符集,问题就可以解决。

还有什么其他情况,欢迎来讨论!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息