错误代码:1366 && 1300-MySQL CHARACTER SET问题

时间:2018-08-31 20:51:50

标签: mysql sql character-encoding

我有两个字符集错误,这些错误使我无法使用旧数据库的内容为数据库播种。

1。错误代码1366:不正确的字符串值“ \ xDB”

我尝试将CHARACTER SET的{​​{1}}更改为TABLE

我研究了\ xDB作为字符类型的含义,偶然发现了this。这使我相信这是Javascript转义格式。但是,我似乎找不到支持此功能的MySQL utf8mb4

即使我确实找到了支持Javascript转义格式的CHARACTER SET,将所有内容都转换为更标准的且包含CHARACTER SET的内容也不是最好的选择吗?怎么办?

2。错误代码1300:无效的utf8mb4字符串

这是令人反感的字符:®

同样,我尝试了如上所述的类似操作,但收效甚微。

编辑:

我将utf8mb4设置为新数据库,如下所示:

CHARACTER SET

编辑2:

我不知道这有什么不同,但是在执行CREATE TABLE `products` ( `product_id` INT NOT NULL AUTO_INCREMENT UNIQUE, `product_line` VARCHAR(255) NOT NULL, `product_num` VARCHAR(255) NOT NULL, `description` LONGTEXT NOT NULL, PRIMARY KEY (`product_id`) ) CHARACTER SET utf8mb4 ; 时出现了问题,如下所示:

LOAD DATA INFILE

2 个答案:

答案 0 :(得分:2)

不要盲目地做ALTER ... CONVERT TO ...;可能会使情况变得更糟。如果您已经对已经不正确的情况进行了“纠正”,那么我在下面给出的任何建议都不可能消除您遇到的两个问题。

®DB不能相互映射。

DB,以各种字符集表示:

                                    macce   2  1 'Ř'
                           cp1250, latin2   2  1 'Ű'
                           cp1257, latin7   2  1 'Ū'
                     dec8, latin1, latin5   2  1 'Û'
                                      hp8   2  1 'Ü'

与此同时,AE

cp1250, cp1251, cp1256, cp1257, geostd8,
           hebrew, latin1, latin5, latin7   2  1 '®'
                                    macce   2  1 'ģ'
                                      hp8   2  1 'Û'
                                   latin2   2  1 'Ž'
                    cp850, cp852, keybcs2   2  1 '«'

通常的错误是在一个地方指定latin1,而在另一个地方指定utf8 / utf8mb4

(为了便于讨论,utf8和utf8mb4的行为相同。)

This讨论了典型的问题。我担心可能由于错误的更正而使情况更加混乱,或者单个字符不足以进行诊断。请参阅this了解可用的修复程序以及它们适用于哪些情况。

答案 1 :(得分:0)

您是否尝试过将排序规则更改为sed -z 's/line 2\nline 3\n//g;s/line 2\nline 3\n$//' infile ?另外,您的utf8_unicode_ci文件中有两个重要设置。他们是:

my.cnf

此外,我完全同意@Rick,您应该避免使用collation-server character-set-server 。尝试在插入之前执行:

ALTER ... CONVERT TO ...

有帮助吗?