• 让MySQL数据库支持Emoji表情


    问题: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;
  • 相关阅读:
    [SCOI2009] Windy数
    [P1361] 小M的作物
    Wannafly Camp 2020 Day 2E 阔力梯的树
    2017百越杯反序列化writeup
    大美西安writeup
    Thinkphp的SQL查询方式
    Thinkphp的CURD
    记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)
    ThinkPHP的输出和模型使用
    ThinkPHP的运行流程-2
  • 原文地址:https://www.cnblogs.com/chenshuo/p/4922044.html
Copyright © 2020-2023  润新知