UTF8MB4 в БД и Файле?

Поэтому я пытаюсь импортировать огромный файл.sql в мою БД с помощью Ansible. Я настроил MySQL для запуска set global default-character-set = utf8mb4 до того, как БД создана. Я подтвердил, что кодировка БД установлена ​​в utf8mb4, прежде чем импортировать в нее данные ниже.

Тем не менее я все еще получаю 58229: Incorrect string value: '\\xBA' for column 'ISBN' at row 1\n"},

Рассматриваемая линия выглядит так INSERT INTOBX-Book-рейтинги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;

Любые советы будут высоко ценится. Благодарю.

1 ответ

Предполагая, что вы ожидаете º (МАСКУЛИНОВЫЙ ОБЫЧНЫЙ ИНДИКАТОР), я предложу...

наговор BAв латинице1 это символ. Для utf8 это шестнадцатеричный C2BA,

Я предполагаю, что вы не хотите конвертировать ваш "огромный".sql файл. Кроме того, я предполагаю, что нет никакой смеси кодировок; это было бы катастрофой.

Вы не показали код, который вы используете для "загрузки". Если это LOAD DATA, затем добавьте этот пункт: CHARACTER SET latin1 в синтаксически правильном месте.

Для дальнейшего обсуждения предоставьте следующее:

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

Я настоятельно рекомендую использовать InnoDB, а не MyISAM.

Другие вопросы по тегам