【发布时间】:2018-08-31 20:51:50
【问题描述】:
我有两个字符集错误阻止我使用旧数据库的内容为我的数据库播种。
1.错误代码 1366:不正确的字符串值“\xDB”
我尝试将TABLE 的CHARACTER SET 更改为utf8mb4。
我研究了 \xDB 作为字符类型,并偶然发现了this。这让我相信这是一种 Javascript 转义格式。但是,我似乎找不到支持此功能的 MySQL CHARACTER SET。
即使我确实找到了支持 Javascript 转义格式的CHARACTER SET,最好将所有内容都转换为更标准且包罗万象的utf8mb4?这将如何实现?
2。错误代码1300:无效的utf8mb4字符串
这是冒犯的字符:®
再一次,我尝试了上述类似的事情,但收效甚微。
编辑:
我在新数据库中设置CHARACTER SET如下:
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 ;
编辑 2:
我不知道这有什么不同,但是在执行LOAD DATA INFILE 时出现了问题,如下所示:
USE `inventory`;
LOAD DATA INFILE
'all_products.csv'
INTO TABLE `products`
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY ',\r\n'
IGNORE 1 ROWS
(`product_line`,`product_num`,`description`);
【问题讨论】:
-
您知道更改表的默认字符集不会更改现有列的字符集吗?为此,您需要
ALTER TABLE ... CONVERT TO CHARACTER SET ...。请参阅标题“更改字符集”下的dev.mysql.com/doc/refman/8.0/en/alter-table.html
标签: mysql sql character-encoding