码迷,mamicode.com
首页 > 数据库 > 详细

让MySQL数据库支持Emoji表情

时间:2015-10-29 23:25:07      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

问题: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;

 

让MySQL数据库支持Emoji表情

标签:

原文地址:http://www.cnblogs.com/chenshuo/p/4922044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!