UTF8MB4 в БД и Файле?
Поэтому я пытаюсь импортировать огромный файл.sql в мою БД с помощью Ansible. Я настроил MySQL для запуска set global default-character-set = utf8mb4
до того, как БД создана. Я подтвердил, что кодировка БД установлена в utf8mb4, прежде чем импортировать в нее данные ниже.
Тем не менее я все еще получаю 58229: Incorrect string value: '\\xBA' for column 'ISBN' at row 1\n"}
,
Рассматриваемая линия выглядит так INSERT INTO
BX-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.