项目中使用了emoji,然后,问题产生了,后端MySQL数据库无法存储emoji字符,悲了个剧。
     emoji是Unicode字符集的子集,Unicode的使用应该非常普遍了,怎么会遇到这种问题呢?这还要从头说起。
     Unicode是为了解决全球字符的统一编码,用这一个字符集就能够容纳得下全球各语种的字符和特殊符号。与之相应的是GB-2312或GBK这种国标编码,用于对中文字符进行编码的。如今用GB-2312编码越来越少了。
     可是Unicode仅仅是二进制编码,字符的转换和传输还是须要再定义交换码,这就是通常所说的UTF-8、UTF-16、UTF-32……用于对二进制格式的Unicode字符进行字符表示的编码,最经常使用的是UTF-8。
     再来说UTF-8,它是变长的编码,採用1-6个字节来编码一个Unicode字符,比方Ascii码就用1个字节,汉字通经常使用3个字节,emoji是4个字节。
     问题就出在这了。早期,MySQL支持3个字节的UTF8编码存储,所以一直相安无事。可是随着Unicode的发展,emoji大量的使用,非常多字符须要用4个字节的UTF8编码才干表示了,于是出现了这些字符进入MySQL数据库中被截断或者是乱码的现象。
     处理的办法是把MySQL升级到5.5.4以上,升级字符集为utf8mb4。
     就在今天,Unicode发布了7.0新标准,至少新增了2834个字符,包含新的emoji表情符,以后要盯着Unicode了,用全球化眼光处理问题,未来会少一些麻烦。
——欢迎转载,请注明原文出处 http://blog.csdn.net/caowenbin ——
——欢迎关注微信号“曹文斌的软件思考”,共同探讨软件人生——

用Unicode迎接未来的更多相关文章

  1. iOS开发请您把握现在 — 面向未来学习

    iOS开发请您把握现在 — 面向未来学习 这一篇文章,如果你是一名iOS开发正好也处于开发晋升瓶颈迷茫期,不妨停下你的脚步,花五分钟看看,兴许有你需要的!文章结尾有彩蛋 群里常见的唱哀 iOS现在到底 ...

  2. one_person年轻的程序员

    回顾大学三年,通过良师的教导和自身的刻苦学习,我已初步掌握如何运用计算机编程,也养成了认真对待学习和工作的好习惯! 在思想品德上,本人有良好道德修养,并有坚定的政治方向.我热爱祖国,热爱人民,遵纪守法 ...

  3. My Game --简介

    曾经 我们雄心壮志,曾经 我们慷慨激昂,曾经 我们豪情满天涯. 曾经我们一起策划玩法,寻找背景题材,编写代码,幻想没有的更新.此刻由最后的孤狼把仅有成果分享给大伙. 所谓的玩法,背景,每个游戏都与众不 ...

  4. 一个php小白找工作的历程

    一个php小白找工作的历程其实对新工作还是有点忐忑的,对于我这样一个有着特殊工作经历的来说更是如此.为了更好的迎接未来,不得不总结下过去.在经历一段时间的职业生涯探索期后,还是觉得自己更适合做程序员这 ...

  5. python 爬取腾讯微博并生成词云

    本文以延参法师的腾讯微博为例进行爬取并分析 ,话不多说 直接附上源代码.其中有比较详细的注释. 需要用到的包有 BeautifulSoup WordCloud jieba # coding:utf-8 ...

  6. 我们为什么要搞长沙.NET技术社区(4)

    我们为什么要搞长沙.NET技术社区(4) 邹溪源,2019年3月7日 Ps:文中的.NET 包括且不限定于传统.NET Framework技术和.NET Core技术. 1.    楔子 昨天(201 ...

  7. springmvc的面试知识点总结

    新的一年,开启新的篇章,欧气满满,迎接未来. 前几天回顾了spring相关的知识点,现在再来回顾下springmvc相关的知识点做一下总结. 问题总结 之前面试问题总结的那篇文章中,与springmv ...

  8. AIOps 平台的误解,挑战及建议(下)— AIOps 挑战及建议

    本文篇幅较长,分为上,中,下,三个部分进行连载.内容分别为:AIOps 背景/所应具备技术能力分析(上),AIOps 常见的误解(中),挑战及建议(下). 前言 我大概是 5,6 年前开始接触 ITO ...

  9. [转帖]Intel新一代Xeon完整曝光

    AMD已经官宣7nm工艺的第二代EPYC霄龙服务器平台,今年上半年就会大规模出货,而在Intel这边,由于10nm工艺进展还是不够快,在服务器上还是需要14nm继续打天下,而且还有两代14nm工艺产品 ...

随机推荐

  1. NodeJS - Express4.0错误:Cannot read property 'Store' of undefined

    Express在使用mongodb的时候app配置出错 //settings.js module.exports={ cookieSecret:"xxxx", db:"d ...

  2. 我的学习笔记_Windows_HOOK计划 2009-12-03 11:19

    一.什么是HOOK? "hook"这个单词的意思是"钩子","Windows Hook"是Windows消息处理机制的一个重要扩展,程序猿能 ...

  3. Ubuntu下轻松切换GDM, LightDM , KDM

    如果已经安装LightDM和GDM登录显示器.那么在Ubuntu下怎么在各种DM间任意切换呢? 举例: 以切换到GDM为例,打开终端,使用命令: sudo dpkg-reconfigure gdm 接 ...

  4. 基础知识(1)- Java程序设计概述

    1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语  1.2.1 简单性  1.2.2 面向对象  1.2.3 网络技能  1.2.4 健壮性  1.2.5 安全性  1.2.6 体系 ...

  5. win10无法新建文件夹怎么办 win10右键新建菜单设置方法

    有朋友安装了win10系统后发现右键菜单中没有新建项,而平时使用新建 - 文件夹项的机率很高.如何才能恢复桌面右键菜单中的新建项呢? 右键点击桌面空白处,在右键菜单中发现没有新建项: 桌面右键菜单没有 ...

  6. Android.mk参数解释

    -------------------- 下面对Android.mk 中经常出现的变量进行讲解 -------------------- 这些变量,你会经常在Android.mk文件中见到,下面以字表 ...

  7. 超赞的.NET办公软件库

    之前做项目无意中搜到这个站点,一開始以为是国外大牛们的杰作,然后看到联系地址中竟然是四川成都,喔...咱们中国人跟老美.印度人比起来也非常厉害啊. 这个站点一次性提供了word.excel.ppt.p ...

  8. POJ 2538 WERTYU水的问题

    [题目简述]:题意非常easy,没有trick. [分析]:事实上这题还是挺有趣的,在 算法竞赛入门经典中也有这一题. 详见代码: // 120K 0Ms /* 边学边做 -- */ // 字符串:W ...

  9. POJ 2152 Fire

    算是我的第一个树形DP 的题: 题目意思:N个城市形成树状结构.现在建立一些消防站在某些城市:每个城市有两个树形cost(在这个城市建立消防站的花费),limit : 我们要是每个城镇都是安全的:就是 ...

  10. NFS 配置服务

    NFS 配置服务 北京市海淀区  张俊浩 一.NFS.即网络文件系统(Network File System,NFS).一种使用于分散式文件系统的协议,由升阳公司开发.于1984年向外发布.功能是通过 ...