• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php中mysql插入特殊字符(手机端的emoji表情)出现异常

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误。
最终在网上查了一下,有几个解决方案:
 
方案一:
如果是用thinkphp开发的话,在tinhkphp  config.php中连接数据库配置文件中 设置
'DB_CHARSET'=> 'utf8mb4', // 字符集
这样就可以解决问题。
如果没用thinkphp开发,直接使用php开发的话,在执行sql语句的时候,要添加
mysql_query("set names utf8");或者 mysql_query("set character_set_client utf8mb4");
方案二:
 把mysql数据库升级到5.5以上,然后数据库编码设置为utf8mb4,字段的编码最好也为utf8mb4。
 
 
问题:用户个人信息设置时使用emoji表情,MySQL如果不是utf8mb4会导致异常。
SHOW VARIABLES LIKE 'collation_%';     -----查看mysql 系统编码
SHOW VARIABLES LIKE 'char%'; 

SET    NAMES utf8;  ----相当于设置了 character_set_client、character_set_connection、character_set_results
SET   NAMES utf8mb4;
SET   character_set_client=utf8mb4;    ----针对特殊字符
SET   character_set_connection=utf8mb4;--针对特殊字符
SET   character_set_results=utf8mb4;

总之,就是在character_set_client或者character_set_connection中,至少一个的编码为utf8mb4。
utf8mb4这种格式,就是为了兼容手机端的,比UTF-8多了好多格式,包括了UTF-8的格式。
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap