如何解决错误的字符串值错误(MySQL)

时间:2016-09-09 01:43:40

标签: mysql xml utf-8

我有一些用XML格式化的文档。我想将它们的内容(原始文本,格式保留)存储在SQL表格的单元格中,如LONGTEXT,这样我就可以简单地获取单元格的值并稍后将其加载到网页中。我是通过MySQL Workbench做的。

但是,当我尝试将添加内容应用到我的表格时,出现错误 1366:字符串值不正确:\xE2\x80\xAF1, ...

我尝试将字符集更改为utf-8-general-cicp1251,但我仍然遇到相同的错误。

另外,我在XML文件中搜索字符串\xE2\x80\xAF1,但它甚至不在文件中。

有人知道这个字符串是什么吗?

XML文件只有219KB,所以我认为它应该(非常)容易地放在LONGTEXT条目中。

XML是否使用了可能导致此错误的任何字符?

我错过了另一个错误原因吗?

2 个答案:

答案 0 :(得分:0)

您的代码不是文字文本,而是指向NARROW NO-BREAK SPACE

对于UTF-8,简单字符编码为一个字节,其他字符需要两个字节。

还有一些字符需要三个字节。这些字符往往会导致这样的错误。

在此处查找相关问题:freebcp: "Unicode data is odd byte size for column. Should be even byte size"

答案 1 :(得分:0)

你需要

  • 为从客户端(Workbench)建立的连接指定utf8(或utf8mb4)。
  • 将相关列声明为CHARACTER SET utf8(或utf8mb4)。