如何讓MySql數據庫支持emoji表情

本文爲如何系列,主要聚焦解決mysql存儲emoji表情的問題

文章將首發於ShuSheng007的博客 歡迎大家關注

問題

需要在MySql數據庫中存儲emoji表情,但發現數據庫報錯。

原因

由於最初新建數據庫的時候採用了utf8編碼方式,在mysql中這種編碼方式每個字符使用3個字節編碼,而emoji符合由4個字節表示,所以就無法存儲了。

解決方案

將Mysql數據庫和表的編碼方式改成utf8mb4,其最大可以使用4個字節編碼字符,所以可以編碼emoji符號

具體實施

  1. 修改對應數據庫的編碼爲utf8mb4
    ALTER DATABASE your_database CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    
  2. 修改對應表的編碼爲utf8mb4
    ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  3. 修改對應表的對應列的字符集爲 utf8mb4,實踐證明此步驟爲可選步驟,我沒有執行此步驟也成功了。
    ALTER TABLE your_table_name MODIFY column_name TEXT CHARSET utf8mb4;
    

note:值得注意的是數據庫的鏈接中我使用了useUnicode=true參數。

jdbc:mysql://you db remote url:3306/sstxdb?useUnicode=true

總結

如果生活像程序一樣,一個問題的出現總是存在如何解決的方案就好了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章