日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

建表时数据库建议使用 utf8mb4字符集

發布時間:2024/9/30 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 建表时数据库建议使用 utf8mb4字符集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前一直認為,utf8mb4相比utf8最大的作用就是能存儲Emoji表情,直到遇到了內容中帶有【】的文章需要入庫的時候。

普及兩個知識
UTF-8字符集編碼有可能是兩個、三個、四個字節。但MySQL中的utf8字符集,最多只能存儲三個字節的字符,除Emoji表情之外,還有一些生僻字是需要四個字節的,比如前面提到的【】字
查看某文字占用的字節數,可使用Linux中echo -n 字|xdd命令來把該漢字轉為十六進制格式輸出。

可看到“測”字的十六進制格式為e6b58b,每個十六進制占用0.5個字節,所以“測”字整體是3字節,MySQL中的utf8字符集可以支持,再看來【】字。
由8eedbaa4這8個十六進制組成,占4個字節,傳統的utf8字符集無法支持。
入庫時,會截斷內容,4字節以及之后內容無法寫入。
解決辦法

  • 建表時,如果版本支持(MySQL5.5.3及以上),為了獲得更好的兼容性,建議使用utf8mb4字符集,在utf8mb4字符集下,字符串的char類型會多消耗一些空間,建議utf8mb4字符集下,使用varchar代替char類型。
  • 如果版本不支持,而且又因為生產環境項目過多而無法升級,可將4字節的字符轉換成base64、json甚至url編碼后入庫
  • 總結

    以上是生活随笔為你收集整理的建表时数据库建议使用 utf8mb4字符集的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。