【问题标题】:MySQL warning: Incorrect string value: '\x96MySQL 警告:不正确的字符串值:'\x96
【发布时间】:2016-06-08 23:49:04
【问题描述】:

我正在尝试导入一个 CVS 文件,但我收到此警告: 1366 不正确的字符串值:列 '\x96 PART...'

我在某处读到这是关于 4 位 utf8 字符的。但是将表和列的排序规则更改为 utf8mb4 也不起作用。

【问题讨论】:

  • 您是如何准确导入文件的?文件是什么编码的?您的数据库的连接编码是什么?
  • @PhiterFernandes,我看到了那个问题和答案,但我也注意到有一个论点是提到的方法会改变数据库本身:stackoverflow.com/a/11013986/3316750
  • @deceze,我不知道这些问题的答案。我正在寻找知道如何学习 CSV 文件的编码和数据库连接编码的方法。

标签: mysql utf-8 warnings utf8mb4


【解决方案1】:

十六进制96 大概是latin1 编码en-dash ()。但是你已经指定 CSV 文件是 utf8 编码(或 utf8mb4),这个字符是 utf8 无法理解的。

A 计划:更改文件。 (这可能不实用。)

Plan B:告诉 MySQL 该文件是 latin1(而不是 utf8)。然后 MySQL 会将其正确转换为 utf8 编码的E28093

“排序”与排序和比较有关; “字符集”与“编码”有关。

将此添加到我假设您正在使用的LOAD DATA 语句中:

CHARACTER SET latin1

Reference.

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 2019-07-27
    • 2011-09-13
    • 2018-05-05
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多