问题描述:
通过网页授权拿到的用户名存在特殊字符,插入数据库的时候报错"SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x91\x89\xF0\x9F...' for column 'nickname' at row 1"
基本肯定是由于用户使用了特殊表情到导致的。
解决方案:
1. 使用base64对nickname进行编码,取出时再进行解码。(我推荐的方法)2. 修改数据表结构中的字符集为 utf8mb4。(我没试过!!!)
3. 把它过滤掉,或者用UBB代替。