数据库值在特殊字符处被截断

Database value being truncated at special character

我已经从本地 MySQL Workbench 导出了我的数据库,我刚刚尝试 运行 它在我的实时服务器上并且一切都成功插入。

只要有特殊字符,就会对某些字段进行 运行 分类,因此 'This is a £ test' 变为 'This is a '

我假设这是一个编码问题,但是实时和本地数据库都有 UTF8_unicode_CI 作为排序规则。

截断症状:SELECTing文字时,不是全部;特别是它在第一个非英语字符之前被截断。

你是怎么惹上麻烦的:

  • 客户端的字节要INSERTed进入table被编码为latin1,而
  • 连接的字符集是utf8(例如,通过SET NAMES utf8),并且
  • 已声明 table 列 CHARACTER SET utf8

如何修复文字和 table:

  • 文本无法恢复。
  • 该列已经是 utf8,因此无需更改。

如何修复代码:

  • 如果您继续使用 latin1 编码的文本,请将连接的字符集更改为 latin1。