我们正在运行一个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/
users表的排序规则为
utf8_unicode_ci
firstname和lastname列的排序规则为
utf8_unicode_ci
php脚本集的标题:
content-type: text/html; charset=utf-8
当我跑步的时候
mb_detect_encoding()
在变量传递到查询之前,它返回为
UTF-8
所以我不知道为什么它会失败。。。
有人知道我们哪里出了问题吗?
谢谢