亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

為何不要在MySQL中使用UTF-8編碼方式詳解

 更新時間:2019年06月19日 09:06:03   作者:happyjava  
這篇文章主要給大家介紹了關于為何不要在MySQL中使用UTF-8編碼方式的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

MySQL的UTF-8編碼方式

MySQL 從 4.1 版本開始支持 UTF-8,也就是 2003 年,然而目前流行的UTF-8 標準(RFC 3629)是在此之后規(guī)定的。正因此,才造就了MySQL中的UTF-8與我們日常開發(fā)中的UTF-8不一致,從到導致了些問題。MySQL的UTF-8只支持每個字符最多三個字節(jié),而真正的 UTF-8 是每個字符最多四個字節(jié)。

問題復現

有數據庫表如下:utf8編碼方式

往數據庫存一條記錄:

@Test
public void testInsert() {
 User user = new User();
 user.setUsername("\uD83D\uDE00 ");
 user.setPassword("123456");
 userRepo.save(user);
}

這里只是部分代碼,看不懂沒關系,這里是給user表插入一條記錄。其中username是\uD83D\uDE00 。

其實\uD83D\uDE00是一個emoji表情。

因為MySQL中utf8字符集只支持三字節(jié)UTF-8編碼的Unicode范圍,而emoji字符屬于四字節(jié)編碼部分,所以程序運行預期是會報錯的。運行這段代碼:

與預期一致,報錯了。

解決問題

雖然MySQL的UTF-8存在缺陷,但是MySQL(包括mariadb)官方卻沒有修復此bug,而是通過2010年重新發(fā)布的“utf8mb4”來支持真正的 UTF-8。因此想要解決此問題,只能夠將MySQL數據庫設置為utf8mb4字符集才行。

總結

這個問題,也是因為某次保存數據的時候保存了一個emoji表情才發(fā)現的。其實最早開始用MySQL的時候,就有發(fā)現一個utf8mb4了,但是自己卻沒有卻去了解UTF8和UTF8MB4的區(qū)別。通過此次教訓,以后使用MySQL就老老實實的設置字符集為utf8mb4吧。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • MySQL 索引分析和優(yōu)化

    MySQL 索引分析和優(yōu)化

    MySQL 索引分析和優(yōu)化...
    2006-12-12
  • MySQL慢查詢如何定位詳解

    MySQL慢查詢如何定位詳解

    這篇文章主要給大家介紹了關于MySQL慢查詢如何定位的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • mysql中rpm方式安裝的詳解

    mysql中rpm方式安裝的詳解

    在本文中小編給大家整理了關于mysql安裝之rpm方式安裝的詳細步驟以及注意點,需要的朋友們學習下。
    2019-03-03
  • MySQL的索引和復合索引的實現

    MySQL的索引和復合索引的實現

    在數據庫中,索引是一種特殊的數據結構,它可以幫助我們快速地查詢和檢索數據,本文主要介紹了MySQL的索引和復合索引的實現,感興趣的可以了解一下
    2023-11-11
  • windows環(huán)境中mysql忘記root密碼的解決方法詳解

    windows環(huán)境中mysql忘記root密碼的解決方法詳解

    本篇文章是對windows環(huán)境中mysql忘記root密碼的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL刪除外鍵、增加外鍵以及刪除主鍵、增加主鍵的實戰(zhàn)步驟

    MySQL刪除外鍵、增加外鍵以及刪除主鍵、增加主鍵的實戰(zhàn)步驟

    在Mysql中使用外鍵,可以有效地將多個表格的數據"聯動"起來,打破獨立狀態(tài),互相影響,下面這篇文章主要給大家介紹了關于MySQL刪除外鍵、增加外鍵以及刪除主鍵、增加主鍵的相關資料,需要的朋友可以參考下
    2022-08-08
  • mysql本地登錄無法使用端口號登錄的解決方法

    mysql本地登錄無法使用端口號登錄的解決方法

    這篇文章主要介紹了mysql本地登錄無法使用端口號登錄的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 允許遠程訪問MySQL的實現方式

    允許遠程訪問MySQL的實現方式

    這篇文章主要介紹了允許遠程訪問MySQL的實現方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 超詳細卸載mysql教程(按照步驟可完全卸載)

    超詳細卸載mysql教程(按照步驟可完全卸載)

    這mysql和vmware一樣不卸載干凈問題是真的多,搞得有些朋友都想重裝系統了,沒事我來說一下mysql如何卸載干凈,下面這篇文章主要給大家介紹了關于超詳細卸載mysql的教程,只要按照步驟可完全卸載,需要的朋友可以參考下
    2023-03-03
  • mysql解壓包的安裝基礎教程

    mysql解壓包的安裝基礎教程

    這篇文章主要為大家詳細介紹了mysql解壓包的安裝基礎教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論