utf8mb4?

qgelzfjb  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(469)

所以我尝试用ansible将一个巨大的.sql文件导入我的数据库。我已经配置mysql运行 set global default-character-set = utf8mb4 在数据库创建之前。在导入下面的数据之前,我已经确认db charset设置为utf8mb4。
但我仍然收到 58229: Incorrect string value: '\\xBA' for column 'ISBN' at row 1\n"} .
这条线看起来像 INSERT INTO bx图书评级
VALUES (11676,'8475560806º',6); º 似乎是这里的问题。以下是我的tbl结构:

CREATE TABLE `BX-Book-Ratings` (
  `User-ID` int(11) NOT NULL default '0',
  `ISBN` varchar(13) NOT NULL default '',
  `Book-Rating` int(11) NOT NULL default '0'
) ENGINE=MyISAM;

任何提示都将不胜感激。谢谢。

cxfofazt

cxfofazt1#

假设你在期待 º (阳性序数指标),我建议。。。
十六进制 BA ,在拉丁语中是那个字符。对于utf8,它是十六进制的 C2BA .
我假设您不想转换“巨大的”.sql文件。另外,我假设没有混合编码;这将是一场灾难。
您还没有显示用于“加载”的代码。如果是的话 LOAD DATA ,然后添加此子句: CHARACTER SET latin1 在语法正确的地方。
要进一步讨论,请提供以下内容:

SHOW VARIABLES LIKE 'char%';
SHOW CREATE TABLE `BX-Book-Ratings`;

我强烈建议使用innodb,而不是myisam。

相关问题