带有cedilla的数据 - Ç - 在mysql表中

时间:2017-09-01 17:06:47

标签: mysql collation

我试图确定每晚加载MySQL表的java程序中的错误。

  

日志中的错误是 java.sql.SQLException:字符串值不正确:   '\ xEF \ xBF \ xBD \ xEF \ xBF \ xBD ...'代表第1行的“经理”列

最后确定数据中有一个新名称(从平面文件加载) - FRANÇOIS - 正是cedilla发出错误。程序仍然加载了所有内容,只是将该字段留空了。

当我运行SHOW FULL COLUMNS FOR tablename时,它是latin1_swedish_ci。我对整理,charsets知之甚少。 我应该如何更改排序规则才能接受此操作?

1 个答案:

答案 0 :(得分:0)

(渴望发表评论)

需要查看更多详情。

不要使用latin1;使用utf8。

?useUnicode=yes&characterEncoding=UTF-8电话

中的getConnection()联系

在表和/或列定义中使用CHARACTER SET utf8。请提供SHOW CREATE TABLE进行确认。

EFBFBD是"替代品"性格,暗示你有垃圾来。

加载平面文件 - 你能从文件中获得Ç的十六进制吗?如果它是C7,则它是latin1,你应该在加载时指定latin1。是LOAD DATA吗?或其他什么?

如果是C387那么它是utf8;好。

更多讨论,调试,最佳实践等:Trouble with utf8 characters; what I see is not what I stored

术语:"整理" (例如,latin1_swedish_ci)指的是排序顺序。你的问题是"字符集" (例如,latin1或utf8)。