您的位置:首页 > 数据库 > MySQL

让MySQL数据库支持Emoji表情

2015-10-29 22:41 531 查看
问题:Emoji 表情是按照4个字节存储的,所以传统 mysql utf-8编码只能最大存储3字节。

解决:修改MySQL(5.5.3以上版本) 编码为utf8mb4 即可存储Emoji表,同时设置 set names utf8mb4 否则程序写入和读取时会发生乱码。

要求:MySQL 5.5.3以上(网上说的),本人未测试,我用的是 MySQL 5.6 亲测,可以存储。

修改MySQL 编码:

1. OS X 系统:http://www.cnblogs.com/chenshuo/p/4751855.html

2. Linux 系统: http://www.cnblogs.com/chenshuo/p/4743144.html
3. Windows 请自行谷歌百度。

完整表编码(免得以后忘记了)

CREATE TABLE `user` (
`uid` varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '',
`email` varchar(32) CHARACTER SET utf8 DEFAULT NULL,
`username` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL,
`password` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
`token` varchar(32) CHARACTER SET utf8 DEFAULT NULL,
`openid` varchar(32) CHARACTER SET utf8 DEFAULT NULL,
`avatar` varchar(60) CHARACTER SET utf8 DEFAULT NULL,
`teamid` varchar(10) CHARACTER SET utf8 DEFAULT '0',
`position` smallint(6) DEFAULT '0',
`main` smallint(6) DEFAULT '1',
`captain` smallint(6) DEFAULT '0',
`numbers` smallint(6) DEFAULT '0',
`height` int(11) DEFAULT '0',
`weight` int(11) DEFAULT '0',
`level` smallint(6) DEFAULT '0',
`gold` int(11) DEFAULT '0',
`points` int(11) DEFAULT '10',
`phone` varchar(11) CHARACTER SET utf8 DEFAULT NULL,
`address` varchar(32) CHARACTER SET utf8 DEFAULT NULL,
`state` smallint(6) DEFAULT '0',
`follow` int(11) DEFAULT '0',
`fans` int(11) DEFAULT '0',
`createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: