mysql - 使用utf8编码的mysql中的字符串值错误

标签 mysql scala jdbc encoding hikaricp

我将 scala 与 ScalikeJDBC 一起使用,我的表编码是 utf8mb4 和 utf8mb4_general_ci 集合,我得到:

03/01/2015 08:40:57 - ERROR[http-apr-8080-exec-9] StatementExecutor$$anon$1 - SQL execution failed (Reason: Incorrect string value: '\xF0\x9F\x98\x8A' for column 'body' at row 81):

即使我的数据源代码是:

val dataSource: DataSource = {
    val ds = new HikariDataSource()
    ds.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
    ds.addDataSourceProperty("url", "jdbc:mysql://" + org.Server.GlobalSettings.DB.mySQLIP + ":3306?rewriteBatchedStatements=true")
    ds.addDataSourceProperty("user", "SOMEUSER")
    ds.addDataSourceProperty("password", "SomePassword")
    ds.setAutoCommit(false) // dosne't work

    ds.addDataSourceProperty("cachePrepStmts", "true")
    ds.addDataSourceProperty("prepStmtCacheSize", "250")
    ds.addDataSourceProperty("prepStmtCacheSqlLimit", "2048")
    ds.addDataSourceProperty("useServerPrepStmts", "true")
    ds.addDataSourceProperty("useUnicode", "yes")
    ds.addDataSourceProperty("characterEncoding", "utf8")
    ds.addDataSourceProperty("connectionCollation", "utf8_unicode_ci")

    //      ds.addDataSourceProperty("characterEncoding", "utf8mb4") //dosne't work either
    //      ds.addDataSourceProperty("connectionCollation", "utf8mb4_unicode_ci")//dosne't work either
    ds
  }

对于正文栏,我这样做:

 try{
    .
    .
    .
        body = new String(rev.body.getBytes("utf-8"), "utf-8") 
    .
    .
    .
    }

没有捕获到异常,但仍然在查询提交时失败:''不正确的字符串值:......列'body''',一次又一次,有人可以帮助我吗?

最佳答案

让你编码为UTF-8:

body = new String(rev.body.getBytes("utf-8"), "UTF-8")

或者使用java.nio.charset.StandardCharsets.UTF_8

关于mysql - 使用utf8编码的mysql中的字符串值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27754870/

相关文章:

php - php 和 mysql 不断出现错误

mysql - mysql 中的子字符串。选择一些数据

MySQL 用户 : When localhost changed to %, 我无法登录

scala - 部署 Scala/Akka 微服务的规范方法是什么?

mysql查询根据多个条件连接4个表

scala - Play 中的请求/响应 DTO 对象

java - 可选化 Java getter

java - 我无法连接 Heroku 上的数据库

java - 避免 Spring 中的事务回滚

java - 找不到类异常 com.mysql.jdbc.driver