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

WBOY
Freigeben: 2016-06-06 20:34:51
Original
1571 Leute haben es durchsucht

需求是支持移动端表情符在数据库的存取;
首先MySQL存储是支持的,在PC端用的MySQL客户端复制表情,或用SQL都可以写入数据库并且数据显示正常;而且用终端登录服务器的MySQL进行命令行查询出的结果页正常;
ThinkPhp+MySQL 表情问题,iOS、Android表情
但通过TP的API查询,JSON返回的结果是乱码

并且通过API上传到服务端然后插入数据库的结果则是乱码,如下图第一条是API上传的,第二条是直接PC端用SQL或Copy进数据库的;
如果API Post上来的数据直接返回给移动端则移动端收到的数据也正常;
ThinkPhp+MySQL 表情问题,iOS、Android表情

请有经验的帮忙看下是哪里的问题,我考虑是不是TP的存取过程问题

回复内容:

需求是支持移动端表情符在数据库的存取;
首先MySQL存储是支持的,在PC端用的MySQL客户端复制表情,或用SQL都可以写入数据库并且数据显示正常;而且用终端登录服务器的MySQL进行命令行查询出的结果页正常;
ThinkPhp+MySQL 表情问题,iOS、Android表情
但通过TP的API查询,JSON返回的结果是乱码

并且通过API上传到服务端然后插入数据库的结果则是乱码,如下图第一条是API上传的,第二条是直接PC端用SQL或Copy进数据库的;
如果API Post上来的数据直接返回给移动端则移动端收到的数据也正常;
ThinkPhp+MySQL 表情问题,iOS、Android表情

请有经验的帮忙看下是哪里的问题,我考虑是不是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,虽然有点麻烦,但是能实现。
还有没有别的方法?能不能过滤掉表情?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage