我在使用 mysql-connector-java-5.0.8
将有效的 UTF8 字符串插入 Percona MySQL 数据库时遇到问题。我使用 jdk1.8.0_05
。此应用程序是一个控制台应用程序。
我有以下字符串:Nüvifone G60
我正在尝试使用 PreparedStatement
将其插入到数据库中,使用 setString
方法。
我的连接字符串如下:jdbc:mysql://host:post/schema?useUnicode=true&characterEncoding=UTF-8
我的 my.cnf
包含以下代码:
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
我尝试插入数据的表编码设置为 utf8_general_ci
。
我得到的错误信息是:
java.sql.SQLException:不正确的字符串值:“\xC3\xBCvifo...”对于列...
使用 System.out.println
将字符串显示到控制台会正确显示字符串。
我玩了一整天,用谷歌搜索了数十个网站,但没有结果。非常感谢任何帮助。
提前谢谢大家。
最佳答案
听起来某个特定列无法接受 UTF-8 字符。
执行SHOW CREATE TABLE tablename
并确认您尝试插入字符串的实际列 的CHARACTER SET
。如果我在表(和数据库)中将一列定义为 varchar(255) CHARACTER SET ascii
,我可以重现您的问题,否则它完全是 utf8。
关于java - JDBC MySQL 连接器/J 不正确的字符串值 : '\xC3\xBCvifone...' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23833140/