Answer the question
In order to leave comments, you need to log in
How to fix mysql write error "Incorrect string value"?
When I parse this page and try to write its content to the database, I get the following error:
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xD0 ...' for column 'content'
Answer the question
In order to leave comments, you need to log in
Проблема в том, что в контенте встречаются символы, которые состоят не из 3 байтов как в UTF-8, а из 4-х (всякие смайлы, эмоджи и пр.), и для их хранения вам надо для поля content использовать SET utf8mb4, а COLLATION utf8mb4_unicode_ci.
Вот тут очень много по этому поводу написано.
UPD: и вторая опция - принудительно очищайте данные до подходящего UTF-8 текста.
Решил ошибку на django так:
Изменил кодировку:
ALTER DATABASE portfolio CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Поставил кодировку в настройке подключения к БД
'charset': 'utf8mb4',
И заработало после того как прописал такой параметр:
'init_command': 'SET NAMES utf8mb4',
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question