指教:关于jdbc向mysql传递String时,中文变成问号的问题

Canueman 2012-06-28 10:32:52
public class ToJdbc {
public void setJdbc(String name,String content,long time){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
PreparedStatement pre = con.prepareStatement("insert into recode(name,content,time) values(?,?,?)");
pre.setString(1, name);
pre.setString(2, content);
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
pre.setString(3, sdf.format(date));
pre.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

这样的代码,调用过后到了mysql数据库里面的中文全部变成了问号,可是我直接在数据库写中文的话又可以,这是什么情况,请高手帮忙解决一下!
...全文
403 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqfddqr 2012-06-29
  • 打赏
  • 举报
回复
就是字符编码问题 mysql里面有几个地方能设置编码 程序里也要设置 都统一了才能不乱码.
curbstone119 2012-06-29
  • 打赏
  • 举报
回复
连接串里指定编码方式utf-8
外面在下雷 2012-06-29
  • 打赏
  • 举报
回复 6
谢谢大家的回答
这个问题我解决了,我问了我老师,
中文处理 数据库要用UTF-8建库见表,
另外,JDBC请求URL地址后要添加一个编码设置:?useUnicode=true&characterEncoding=utf-8


像这样:Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8","root", "");

  • 打赏
  • 举报
回复
这个是典型的编码问题 因为JAVA核心的编码方式和你计算机的编码方式不一样
你的name content 是不是从表单里获取的用户的输入 如果是的话 这样写
比如一个<input type = "text" name = "name">想获取的的话 这样写
String name = new String(request.getParameter("name").getBytes(ISO-8859),"UTF-8");
外面在下雷 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brightyq 的回复:]
插英文没有问题吧?如果没有问题那可能是数据库编码的问题,mysql编码设为试试。

在进行设置,在"Please select the default character set"设置页,选择"Best Support For Multilingualism"试试。
[/Quote]

utf-8已经设置了啊 bin文件夹下的MySQLInstanceConfig.exe没有看到..
brightyq 2012-06-28
  • 打赏
  • 举报
回复
插英文没有问题吧?如果没有问题那可能是数据库编码的问题,mysql编码设为utf-8试试。

在bin文件夹下,点击MySQLInstanceConfig.exe进行设置,在"Please select the default character set"设置页,选择"Best Support For Multilingualism"试试。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧