尝试在数据库URL中指定编码:
url="jdbc:mysql://localhost:port/DBNAME?characterEncoding=UTF-8"
以下是有关我的答案的更多信息:
以下内容摘自MySQL文档(http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-
charsets.html):
从JDBC驱动程序发送到服务器的所有字符串都将从本机Java
Unipre形式自动转换为客户端字符编码,包括使用Statement.execute(),Statement.executeUpdate(),Statement.executeQuery()发送的所有查询以及所有PreparedStatement和CallableStatement参数,但不包括使用setBytes(),setBinaryStream(),setAsciiStream(),setUnipreStream()和setBlob()设置的参数。设置字符编码
连接后会自动检测客户端和服务器之间的字符编码。对于服务器版本4.1.0和更高版本,可以使用character_set_server在服务器上指定编码。驱动程序自动使用服务器指定的编码。要覆盖客户端自动检测到的编码,请使用用于连接到服务器的URL中的characterEncoding属性。要允许从客户端发送多个字符集,请使用UTF-8编码,方法是将utf8配置为默认服务器字符集,或者配置JDBC驱动程序以通过characterEncoding属性使用UTF-8。
几个月前,我遇到了类似的问题。我在MySQL上检查了character_set_server的默认值(使用“ mysqld –verbose
–help”命令)。是拉丁语1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)