新浪云共享型数据库使用utf8mb4

如果不需要看说明,示例的代码已经放到GitHub,代码的查询地址在: https://github.com/xiaosier/gofun/tree/master/sae-rdc-emoji-example 可以直接查阅。

创建数据表

创建数据表时表的整理一定要使用utf8mb4unicodeci,如图所示:

index.php

使用http://apidoc.sinaapp.com/class-SaeMysql.html 新浪云默认提供的SaeMysql驱动连接了数据库并制定了编码。

程序展示了历史写入的数据,并通过一个表单网表里写入数据。

post.php

接受数据,设置连接编码为utf8mb4。

如何测试

请使用手机的浏览器测试,因为PC的浏览器对于处理emoji表情展示是有问题的。

如下图所示,写入的表情是可以正确存储的:

为什么从phpmyadmin看到的默认是乱码

可以看到使用phpmyadmin默认看到的content是问号,因为phpmyadmin默认使用的编码是utf8而不是utf8mb4,编辑一下SQL语句,在查询前修改编码为utf8mb4就可以看到正确的数据,一起执行:

set names utf8mb4;SELECT * FROM `test`  

记得要放到一个SQL中执行,执行后就可以看到:

示例代码在https://github.com/xiaosier/gofun/tree/master/sae-rdc-emoji-example,添加测试数据请使用手机的浏览器。