主页 > mysql, 数据库 > 手机输入法表情保存问题[mysql]

手机输入法表情保存问题[mysql]

2015年1月7日 发表评论 查看评论
手机端的输入法包含了图片表情(emoji)
这个时候由于后台数据库用的是gbk编码
用iconv转成utf8保存后就出现乱码
 
所以我们把表建成utf8的,不做转码,但发现保存后,这些手机表情都不见了。为空。
由于代码用的是mysqlpp,不确定是否是这个库不支持导致。
改用原始的mysql库试了一下。还是不行
 
发现将varchar类型改为varbinary类型,就可以保存了。
 
但是这里varbinary和varchar还是有区别的.
varbinary只存字节,不饱和编码。也就是说容量有差别。
同样255,varbinary只能存255字节。而varchar可以存255个UTF8字符。
 
翻mysql官网文档,
5.1版本utf8是最多3个字节,而emoji表情四个字节。
5.5以后的版本,有个类型叫utf8mb4,可以支持4个字节。
所以建成utf8mb4就可以了。
http://dev.mysql.com/doc/refman/5.1/en/charset-unicode.html
http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html
 

原创文章,转载请注明: 转载自肚腩照明月'blog

本文链接地址: 手机输入法表情保存问题[mysql]

文章的脚注信息由WordPress的wp-posturl插件自动生成


  1. 本文目前尚无任何评论.

SEO Powered by Platinum SEO from Techblissonline