emoji表情儲存到資料庫的方法

2022-06-24 00:57:12 字數 1393 閱讀 8874

為什麼我們設定表的的字元型別為utf8卻不能存放emoji呢?

原來utf8可能是2或3或4個位元組,而mysql的utf8是3個位元組,存放乙個emoji是需要4個位元組的,自然不夠。

mysql資料庫在5.5.3之後開始支援utf8mb4字符集,所以mysql版本是5.5.3+的都可以設定讓資料庫儲存emoji表情,如果你的應用有移動端的,最好一開始設計資料庫的時候就使用utf8mb4字符集,當然沒用的也可以通過如下方式修改:

編輯mysql配置檔案

vim /etc/my.cnf

新增下面**

[

mysqld

]character-set-server=utf8mb4

[mysql

]default-character-set=utf8mb4

在mysql中執行以下命令修改環境變數

set character_set_client = utf8mb4;

set character_set_connection = utf8mb4;

set character_set_database = utf8mb4;

set character_set_results = utf8mb4;

set character_set_server = utf8mb4;

檢視是否修改成功,執行如下sql語句

show variables where variable_name like 'character\_set\_%' or variable_name like 'collation%';

修改已經建立表的字符集

alter table table_name convert to character set utf8mb4 collate utf8mb4_bin;

至此資料庫的配置就完成了,在**連線資料庫之後還需要執行

set names utf8mb4

這樣就可以自此 emoji 表情了。

如果嫌上述方案麻煩,還要運算元據庫最初的型別。那麼這種方法適合你。

原理:轉義成字串放入到資料庫,使用的時候反轉義可以直接轉義成表情,再把內容傳進去就。

//

對emoji表情轉義

function emoji_encode($str

)else

}return

$strencode;}

//對emoji表情轉反義

function emoji_decode($str

), $str

);

return

$strdecode

;}

文章參考:

讓你的**支援 emoji (

如何讓emoji存放到資料庫中 (

mysql資料庫怎麼存入emoji表情

資料庫右鍵 改變資料庫 設定資料庫字元編碼為utf8mb4 general ci 在這裡插入描述 表右鍵 改變表 在這裡插入描述 設定具體欄位的字元編碼 alter table link feedback change profiles profiles varchar 300 character ...

emoji表情在資料庫中如何查詢

1 儲存問題 由於emoji表情4個位元組的,而資料庫中的utf 8的字符集實際上並不是真正的utf8,之後mysql又出了乙個新的字符集utf8mb4,這個才是我們平時所說的utf 8。所以首先儲存的話,需要保證資料庫表的字符集以及該字段的字符集要是utf8mb4才可以。2 查詢問題 儲存沒問題了...

emoji表情符號MYSQL資料庫的處理

資料庫編碼格式utf 8 儲存報錯 incorrect string value xf0 x9f x88 xb2 for column at row 1 原因 emoji表情符號為4個位元組的字元,而 utf8 字符集只支援1 3個位元組的字元,導致無法寫入資料庫。多麼痛的領悟?對的 永遠不要在my...