Мы запускаем cron-скрипт, который берет новых пользователей из csv и вставляет их в нашу базу данных. Он терпит неудачу, когда он сталкивается с пользователем со специальным символом в их имени, но я не понимаю, почему, насколько я вижу, все настроено так, чтобы оно работало.специальные символы mysql - неправильное строковое значение ' xE1n'
Вот пример имени он неисправный на: сообщение
Siobhán
Ошибки:
!! Incorrect string value: '\xE1n' for column 'firstname' at row 1
И тогда var_dump данных он пытается вставить имеет имя, как: Siobh
так он обрезается специальными символами
Вот результат отображения переменных типа «char%» в нашей базе данных:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Сопоставление таблицы пользователей utf8_unicode_ci
по сопоставлению с FirstName и LastName колонн utf8_unicode_ci
Заголовок сценария PHP устанавливает:
content-type: text/html; charset=utf-8
И когда я запустите mb_detect_encoding()
на переменную перед ее передачей в запрос, она возвращается как UTF-8
Итак, у меня нет идей о том, почему он не работает ...
Есть ли у кого-нибудь идеи относительно того, где мы ошибаемся?
Благодаря
Вы сохранили CSV как UTF-8? – DanFromGermany
csv генерируется автоматически скриптом из другого отдела. Есть все равно, чтобы проверить? –
Открыть с помощью текстового редактора. Notepad ++ соответствует моим потребностям. Убедитесь, что ваши другие скрипты сохранены как utf-8, и все данные, которые вы копируете, кодируются utf-8. – DanFromGermany