我们正在运行一个 cron 脚本,它从 csv 中获取新用户并将它们插入到我们的数据库中。每当遇到名称中有特殊字符的用户时,它都会失败,但我不明白为什么,据我所知,一切都已设置好,它应该可以工作。
这是一个失败的名称示例:
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
所以我不知道为什么它会失败......
有没有人知道我们哪里出错了?
谢谢