MySQL中utf8和utf8mb4的區別
一、簡介
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的缺點)。
原文網址:https://www.cnblogs.com/cuiqq/p/11045487.html
相關文章
- 在MySQL中,不要使用“utf8”。使用“utf8mb4”MySql
- mysql中!=和is not的區別MySql
- mysql中“ ‘ “和 “ ` “的區別MySql
- utf-8 和 utf8的區別小記
- Mysql 中 MyISAM 和 InnoDB 的區別MySql
- MySQL中datetime和timestamp的區別MySql
- MySQL中CHAR和VARCHAR區別MySql
- MySQL中REPLACE INTO和INSERT INTO的區別分析MySql
- utf8改成utf8mb4實戰教程
- Mysql中S 鎖和 X 鎖的區別MySql
- MySQL和Oracle的區別MySqlOracle
- Oracle和MySQL的區別OracleMySql
- MYSQL和SQL的區別MySql
- 【Mysql】MySQL中interactive_timeout和wait_timeout的區別MySqlAI
- 談談mysql和redis的區別MySqlRedis
- SQLserver-MySQL的區別和用法ServerMySql
- mysql alter modify 和 change的區別MySql
- MySQL之Where和Having的區別MySql
- Oracle 和 mysql的9點區別OracleMySql
- MySQL 中 VARCHAR 最大長度及 CHAR 和 VARCHAR 的區別MySql
- Mysql中tinyint(1)和tinyint(4)的區別詳析WIFRMySql
- JavaScript中for in 和for of的區別JavaScript
- Js中for in 和for of的區別JS
- Python中is和==的區別Python
- JavaScript中==和===的區別JavaScript
- Linux中“>”和“>>”的區別Linux
- Python 中 is 和 == 的區別Python
- PHP 中的 -> 和 :: 的區別PHP
- mysql主從和主備的區別MySql
- 在MySQL中 Truncate Delect Drop 的區別MySql
- java 中equals和==的區別Java
- SQL中where和on的區別SQL
- deferred中done和then的區別
- MySQL中TEXT與BLOB欄位型別的區別MySql型別
- JS中的!=、== 、!==、=== 的用法和區別JS
- mysql 空值(null)和空字元('')的區別MySqlNull字元
- NULL在oracle和mysql索引上的區別NullOracleMySql索引
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎