问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

utf8mb4和utf8有什么区别?

发布网友 发布时间:2022-04-07 08:09

我来回答

2个回答

懂视网 时间:2022-04-07 12:30

一、简介

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。utf8mb4是utf8

的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

二、内容描述

那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如

果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种

平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji

是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等(utf8的缺

点)。

通常,计算机在存储字符时,会根据不同类型的字符以及编码方式分配存储空间。例如以下几种编码方式;

①ASCII编码中,一个英文字母(不分大小写)占用一个字节的空间,一个中文汉字占用两个字节的空间。一个二进制的数字序列,在计算机中作为一个数字单元存储时,一般为8位二进制数,换算为十进制。最小值0,最大值255。

②UTF-8编码中,一个英文字符占用一个字节的存储空间,一个中文(含繁体)占用三个字节的存储空间。

③Unicode编码中,一个英文占用两个字节的存储空间,一个中文(含繁体)占用两个字节的存储空间。

④UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要占用2个字节的存储空间(Unicode扩展区的一些汉字存储需要4个字节)。

⑤UTF-32编码中,世界上任何字符的存储都需要占用4个字节的存储空间。

既然utf8能兼容绝大部分的字符,为什么要扩展utf8mb4?

随着互联网的发展,产生了许多新类型的字符,例如emoji这种类型的符号,也就是我们通常在聊天时发的小黄脸表情,这种字符的出

现不在基本多平面的Unicode字符之中,导致无法在MySQL中使用utf8存储,MySQL于是对utf8字符进行了扩展,增加了utf8mb4这个编码。

所以,设计数据库时如果想要允许用户使用特殊符号,最好使用utf8mb4编码来存储,使得数据库有更好的兼容性,但是这样设计会

导致耗费更多的存储空间。

热心网友 时间:2022-04-07 09:38

没用过,也没试过那么高的mysql版本。不过你发的手册链接说了以往mysql里的utf8一个字符最多3字节,只支持BMP这部分的unicode编码区,BMP是从哪到哪,到http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters这里看,基本就是0000~FFFF这一区。而utf8mb4则扩展到一个字符最多能有4字节,所以能支持更多的字符集。utf8mb4isasupersetofutf8utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,到http://witmax.cn/unicode-list.html看unicode编码区从1~126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。 查看原帖>>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么网址更新火影忍者集数最快 如果你跟男朋友分手了,他的回答是顺其自然这是什么意思,我该怎么办... 一个女人像男人提分手男人说顺其自然是什么意思 上线两年《X-HERO》如何做到登顶多个国家榜首的? 龙武游戏怎么样费钱吗 Q1游戏公司产品 中国现有什么银行 x.最近六个月的通话记录? 爱奇艺会员哪里买便宜 爱奇艺会员免费领取 iphone4 怎样删除原来的旧凯立德地图 没有一点基础怎么学JAVA 有重大关联交易好与不好 离婚后持有未在婚证明无房证明怎么迁户口 夫妻离婚后女方没房子户口怎么办 离婚后男方没房子,这个户口要迁到母亲乡下行吗? 深户离婚后如果分户,并没有房产,户口可以分到哪里? 离婚后没有房子户口怎么办? 离婚后,女方没房户口可以挂在派出所吗? 请问离婚了。我想把户口迁出来,可是我又没有房子。该怎么办? 北京户口离婚后没房,户口咋办 如何强制关闭华为健康使用手机? iPhone 5c怎么显示当地天气? 如何设置iPhone 获取当地天气信息 怎么样才能随时随地查询当地天气么 在外旅游时怎么样显示当地的天气预报 QQ手机版怎么查看当地天气 查看当地天气的方法 3年没用过的银行卡是否还有用 我的银行卡有三年都没用过了,里面还有几块钱吧,现在还能用吗 全脂羊奶粉复注是什么意思? 口碑最好的国产羊奶粉? 《java多线程编程核心技术》和《java并发编程的艺术》两本书的异同 股东关联交易导致纠纷由什么法院管辖 如何评价<JAVA并发编程的艺术>这本书 跪求《Java编程艺术》 (高永强 著) pdf或者word 公司法证券法对上市公司大股东损害公司利益的处理 《java编程艺术》电子版 上市后大股东关联方多久可以出售 股东关联交易导致纠纷由哪个法院管辖 谁有Java编程艺术 (高永强 著)pdf? 关联交易的利弊及防范 谁有java并发编程艺术 pdf 上市公司的控股股东为上市公司提供担保是否属于关联交易?是否需参加董事会会议的成员三分之二以上同意 上市公司大股东能与本公司做生意吗? 微软为什么敌视JAVA? 求Java加密与解密的艺术-梁栋书籍电子版百度云资源 软件工程方向——学习JAVA前途?建议。。 请教java集合及用法? 想学jsp网页制作,应该怎么开始? picsart被扣费了请问怎么退回来?登陆了官网 选择了买错 被拒绝退款 如何恢复钉钉过期的视频教学- 问一问