建表时数据库建议使用 utf8mb4字符集
生活随笔
收集整理的這篇文章主要介紹了
建表时数据库建议使用 utf8mb4字符集
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前一直認為,utf8mb4相比utf8最大的作用就是能存儲Emoji表情,直到遇到了內容中帶有【】的文章需要入庫的時候。
普及兩個知識
UTF-8字符集編碼有可能是兩個、三個、四個字節。但MySQL中的utf8字符集,最多只能存儲三個字節的字符,除Emoji表情之外,還有一些生僻字是需要四個字節的,比如前面提到的【】字
查看某文字占用的字節數,可使用Linux中echo -n 字|xdd命令來把該漢字轉為十六進制格式輸出。
可看到“測”字的十六進制格式為e6b58b,每個十六進制占用0.5個字節,所以“測”字整體是3字節,MySQL中的utf8字符集可以支持,再看來【】字。
由8eedbaa4這8個十六進制組成,占4個字節,傳統的utf8字符集無法支持。
入庫時,會截斷內容,4字節以及之后內容無法寫入。
解決辦法
總結
以上是生活随笔為你收集整理的建表时数据库建议使用 utf8mb4字符集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot 正确中使用JPA
- 下一篇: SSH开发注意