в программном обеспечении C ++, использующем libmysqlclient, я пытаюсь вставить строку в таблицу, содержащую html-кодированные символы, такие как & eacute ;. Запрос выглядит так:
INSERT INTO mytable ( field ) VALUES( 'Justificatif d\'achat numéro 1523641305' )
Сбой с ошибкой:
Incorrect string value: '\xE9ro 15...' for column 'field' at row 1
Если я скопирую свой запрос, например, скопирую его в рабочую среду и выполню, он будет работать. Но невозможно, чтобы это работало из моего кода.
Мой столбец находится в кодировке utf8 с сопоставлением по умолчанию.
Я подключаюсь к своей БД с помощью mysql_real_connect и вызываю "SET NAMES 'utf8'"
сразу после выполнения подключения.
Первое редактирование:
Я прочитал вопросы и ответы от Вставка строки в кодировке UTF-8 в таблицу mysql в кодировке UTF-8 завершается с ошибкой «Неверное значение строки» , и пытался применить предложенные решения, но у меня это не сработало ,
Насколько я понимаю проблему, моя проблема в другом, так как я пытаюсь вставить символ U + 00E9 в Unicode, и, следовательно, только на 2 байта. Кроме того, я могу вставить его в свою БД, но не из своего кода C ++.