微信昵称中含有emoji字符等特殊符号时引起的存储问题
问题:当PHP获取微信昵称并保存在数据库中,会报错;当然待从数据库中读取时只能是空的。
原因:查询得知,一般数据库字体编码为utf-8, 3字节, emoji为unicode编码,4字节,数据库插入不成功,只能报错
解决1:数据库编码选择utf8mb4字符集,适用于全新数据库
解决2:在插入数据时,将可能包含特殊符号的字符串编码(utf8_encode),从数据库读取数据时,同样字段进行解码(utf8_decode)
问题:当PHP获取微信昵称并保存在数据库中,会报错;当然待从数据库中读取时只能是空的。
原因:查询得知,一般数据库字体编码为utf-8, 3字节, emoji为unicode编码,4字节,数据库插入不成功,只能报错
解决1:数据库编码选择utf8mb4字符集,适用于全新数据库
解决2:在插入数据时,将可能包含特殊符号的字符串编码(utf8_encode),从数据库读取数据时,同样字段进行解码(utf8_decode)