刚才遇到一个很蛋疼德问题,就在java执行executeupdate()后在table中看到中文全变乱码,然而网上大多数博客都是在mysql自身去找问题,我也跟着做了许多无功,蛋疼的博主。后来终于 发现了某博主在url
后指定了字符编码,结果一试就灵。现在记录下来以帮助更多人。
代码:
//创建PreparedStatement对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//对SQL语句中的参数动态赋值
preparedStatement.setString(1,usr);
preparedStatement.setString(2,pw);
preparedStatement.setString(3,sex);
preparedStatement.setString(4,question);
preparedStatement.setString(5,answer);
preparedStatement.setString(6,email);
//执行更新操作
preparedStatement.executeUpdate();
执行后中文全是乱码。
那是因为url中没有指定characterEncoding:
String url = "jdbc:mysql://localhost:3306/test_1";
这样的就会出现中文乱码。
解决:
String url = "jdbc:mysql://localhost:3306/test_1?characterEncoding=utf8";
Ok!完美解决!