最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

MySQL的UTF-8編碼方式

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

問題復(fù)現(xiàn)

有數(shù)據(jù)庫表如下:utf8編碼方式

往數(shù)據(jù)庫存一條記錄:

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

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

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

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

與預(yù)期一致,報錯了。

解決問題

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

總結(jié)

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

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

相關(guān)文章

  • mybatis分頁插件pageHelper詳解及簡單實例

    mybatis分頁插件pageHelper詳解及簡單實例

    這篇文章主要介紹了mybatis分頁插件pageHelper詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • MySQL實現(xiàn)數(shù)據(jù)更新的示例詳解

    MySQL實現(xiàn)數(shù)據(jù)更新的示例詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL實現(xiàn)數(shù)據(jù)更新的相關(guān)資料,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 徹底解決MySQL使用中文亂碼的方法

    徹底解決MySQL使用中文亂碼的方法

    本文詳細(xì)講解了徹底解決MySQL使用中文亂碼的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Mysql深入了解聯(lián)表查詢的特點

    Mysql深入了解聯(lián)表查詢的特點

    這篇文章主要給大家介紹了關(guān)于MySQL聯(lián)表查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Mysql中 show table status 獲取表信息的方法

    Mysql中 show table status 獲取表信息的方法

    這篇文章主要介紹了Mysql中 show table status 獲取表信息的方法的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • MySQL用戶與權(quán)限的管理詳解

    MySQL用戶與權(quán)限的管理詳解

    這篇文章主要介紹了MySQL用戶與權(quán)限的管理,詳細(xì)分析了mysql用戶密碼、權(quán)限設(shè)置與使用相關(guān)操作原理及注意事項,需要的朋友可以參考下
    2019-07-07
  • Mysql分組查詢每組最新的一條數(shù)據(jù)的五種實現(xiàn)過程

    Mysql分組查詢每組最新的一條數(shù)據(jù)的五種實現(xiàn)過程

    本文介紹了五種在MySQL中獲取每個分組最新一條數(shù)據(jù)的方法,包括子查詢和JOIN、窗口函數(shù)、變量、聚合函數(shù)和子查詢以及使用DISTINCT關(guān)鍵字,推薦使用子查詢和JOIN操作或窗口函數(shù),避免使用變量
    2024-11-11
  • 淺談MySQL 統(tǒng)計行數(shù)的 count

    淺談MySQL 統(tǒng)計行數(shù)的 count

    這篇文章主要介紹了MySQL 統(tǒng)計行數(shù)的 count的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • MySQL百萬級數(shù)據(jù),怎樣做分頁查詢

    MySQL百萬級數(shù)據(jù),怎樣做分頁查詢

    這篇文章主要介紹了MySQL百萬級數(shù)據(jù),怎樣做分頁查詢?今天咱們就來聊聊這個話題,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 關(guān)于MYSQL 你需要知道的數(shù)據(jù)類型和操作數(shù)據(jù)表

    關(guān)于MYSQL 你需要知道的數(shù)據(jù)類型和操作數(shù)據(jù)表

    這篇文章主要介紹了關(guān)于MYSQL中數(shù)據(jù)類型的知識和操作數(shù)據(jù)表的方法,文中講解非常詳細(xì)供大家參考學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評論

莒南县| 深圳市| 房产| 治县。| 蕉岭县| 南漳县| 贵定县| 和田市| 沙坪坝区| 新兴县| 赤壁市| 望江县| 柘城县| 平遥县| 拉孜县| 东乡族自治县| 政和县| 密山市| 马龙县| 南召县| 阳高县| 宜宾县| 丘北县| 武穴市| 若羌县| 双峰县| 望都县| 嘉黎县| 武平县| 万盛区| 望奎县| 阳朔县| 于田县| 乐亭县| 乐安县| 泾源县| 常宁市| 天全县| 天津市| 土默特左旗| 永福县|