您好,欢迎访问一九零五行业门户网

ThinkPhp+MySQL 表情问题,iOS、Android表情

需求是支持移动端表情符在数据库的存取;
首先mysql存储是支持的,在pc端用的mysql客户端复制表情,或用sql都可以写入数据库并且数据显示正常;而且用终端登录服务器的mysql进行命令行查询出的结果页正常;
但通过tp的api查询,json返回的结果是乱码
并且通过api上传到服务端然后插入数据库的结果则是乱码,如下图第一条是api上传的,第二条是直接pc端用sql或copy进数据库的;
如果api post上来的数据直接返回给移动端则移动端收到的数据也正常;
请有经验的帮忙看下是哪里的问题,我考虑是不是tp的存取过程问题
回复内容: 需求是支持移动端表情符在数据库的存取;
首先mysql存储是支持的,在pc端用的mysql客户端复制表情,或用sql都可以写入数据库并且数据显示正常;而且用终端登录服务器的mysql进行命令行查询出的结果页正常;
但通过tp的api查询,json返回的结果是乱码
并且通过api上传到服务端然后插入数据库的结果则是乱码,如下图第一条是api上传的,第二条是直接pc端用sql或copy进数据库的;
如果api post上来的数据直接返回给移动端则移动端收到的数据也正常;
请有经验的帮忙看下是哪里的问题,我考虑是不是tp的存取过程问题
还是mysql的问题,我重新安装了mysql 5.6版本现在可以了,但数据库切换到我再阿里云上的rds还是不多,阿里云的也是5.6版本utf8mb4啊!
数据库编码问题,emoji表情占四个字节,把数据库编码改为utf8mb4就行了,数据库版本需要5.5.3+。下面官方文档:http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html
看网上有说的 进行json_encode 存入数据库,读取的时候在json_decode,虽然有点麻烦,但是能实现。
还有没有别的方法?能不能过滤掉表情?
其它类似信息

推荐信息