utf8和utf8mb4的区别

1、原理
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

2、应用场景
那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等(utf8的缺点)。

解决方法


存储和读取的时候使用base64位加密、解密字符串:

加密:base64_encode()

解密:base64_decode()

MYSQL处理4字节(昵称表情等特殊字符)字符乱码问题相关推荐

  1. eomj表情 mysql_mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: #3...

    本文章转载自:https://www.cnblogs.com/coprince/p/7485968.html 原文如下: 问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varch ...

  2. mysql存带表情的微信昵称_MySQL保存 emoji 表情(微信昵称表情)

    问题分析 在微信开发过程中,总是会遇到带有emoji表情昵称的微信用户无法自动登录的问题. 后台代码抛出类似下面的异常信息. java.sql.SQLException: Incorrect stri ...

  3. mysql 过滤微信昵称表情_PHP正则过滤处理微信昵称中emoji字符的方法

    本文实例讲述了PHP正则过滤处理微信昵称中emoji字符的方法.分享给大家供大家参考,具体如下: 今天刚做了一个微信应用,在获取微信昵称的过程中报错了,经查原因是微信昵称中包含emoji字符,在写入数 ...

  4. mybatis mysql 微信昵称表情_springboot+mybatis+druid+mysql 保存emoji表情

    最近在学习springboot,在练习做一个简单博客系统时遇到了保存emoji表情出错,搜索了半天才搞定.这里记录下来,希望能够帮助到自己或有需要的人不要踩坑. 第一步:首先你要保证你的mysql数据 ...

  5. mysql存储图片node_Node.js教程 阿里云mysql如何支持存储emoji表情

    本篇教程介绍了Node.js教程 阿里云mysql如何支持存储emoji表情,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入. < 本篇主要记录nodejs项目阿里云m ...

  6. mysql 保存微信特殊昵称报错,报非法字符异常

    解释: 这些字符发现都是 emoji 表情在各个编程语言种对应的编码也不相同 原因和办法: 特殊字符一个字符有可能是一个符号由4个字节组成,但UTF-8 一个字符由3个字节组成,所有会报错 1. 在数 ...

  7. mysql gbk编码 字节数_MySql中UTF8和GBK编码中文字符长度问题

    2.设计函数,输入为一个字符串,里边包含中文.英文.数字等字符,编码为GBK.中文字符的编码规则假定为:双字节组成,高字节大于0x80,低字节任意.     a) 用常用语言(c/c++/php/ja ...

  8. android edittext禁止输入特殊字符,禁止输入表情以及特殊字符方法

    /** * 禁止输入表情以及特殊字符 */ public static class EmojiExcludeFilter implements InputFilter { @Override publ ...

  9. java去除emoji表情等特殊字符。

    java去除emoji表情等特殊字符.保留html标签 package test;import java.util.regex.Matcher; import java.util.regex.Patt ...

最新文章

  1. 因子分析数据_Excel数据分析案例:用Excel做因子分析
  2. RESTful服务最佳实践
  3. 同样的工作年限,为什么有人年薪百万,有人月薪五千?
  4. 虚拟机安装linux系统无法上网的解决方法
  5. 机器学习系列之手把手教你实现一个分类回归树
  6. 【Java】HashMap构建登录程序
  7. 【JVM】浅谈对OOM的认识
  8. Markdown编辑器简单总结
  9. 中文文本纠错论文解读——Adaptable Filtering using Hierarchical Embeddings for Chinese Spell Check
  10. 锂电池保护板测试软件,锂电池保护板测试仪
  11. 微博热搜数据变化趋势视频化展示
  12. Android 中的长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算
  13. idb 怎么回复mysql_mysql利用frm和idb文件恢复数据库
  14. C语言中的逗号的作用,c语言中什么是逗号运算符并举例
  15. Linux安装SQuirreL SQL Client
  16. selenium安装及在python中简单使用
  17. 如何通过python爬股票接口获取证券交易日?
  18. IDEA + Tomcat + war 包部署 [ 如果看别的教程不行请看这个里 ]
  19. 每周推荐短视频:阿里云基于校企合作培养数据库技术人才
  20. 自考计算机应用学哪几科先,计算机科学与技术自考本科科目有哪些要考

热门文章

  1. 浪潮集团_软件开发工程师_笔试+面经
  2. 打造高质效的技术团队 —— 混乱篇
  3. C++实现忍者跑酷小游戏
  4. linux syslog 删除文件_Linux不小心删除日志文件syslog的解决方法
  5. JDK8都10岁了,你还在用for循环遍历list吗?
  6. 站长在线python精讲:在Python中使用“+”运算符来拼接字符串详解
  7. 国金证券:2007年6月投资策略报告
  8. 管理经济学【十一】之 寡头垄断市场中的企业决策
  9. 商业创新的五个故事,用友YonSuite让全员皆创新
  10. Reinforcement Learning Enhanced Heterogeneous Graph Neural Network阅读笔记