当我从应用程序向mysql数据库输入数据时出现问题,它以“ ????”的形式出现但是,当我通过“ phpmyadmin”输入数据时,数据正常显示
问题是当我通过应用程序输入数据时,
与数据库无关
我尝试更改数据库和表以及表内字段的编码的任何方式
这是我的应用程序中的插入查询
public static void dbConnect() {
try{
Class.forName(DRIVER);
connector = DriverManager.getConnection(DATA_BASE_BATH, "root", "");
insert = connector.prepareStatement("INSERT INTO students VALUES (?,?,?,?)");
}
public static void insert(int id , String name , String special , double gpa){
dbConnect();
try{
insert.setInt(1, id);
insert.setString(2, name);
insert.setString(3,special);
insert.setDouble(4,gpa);
insert.execute();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
}
这是了解问题的图片
-第一行是来自应用程序的数据条目
-第二行是从phpmyadmin手动输入的数据
最佳答案
您的应用程序未正确处理数据。
您需要在与MySQL服务器的连接过程中设置字符集。
Perhaps by running the command SET NAMES 'UTF8';
作为连接脚本的一部分。
This answer states that在getConnection()函数调用as does this one中引用时,甚至可以使其成为DATA_BASE_BATH
中JDBC连接字符串的一部分。