小技巧 如何讓emoji存放到資料庫中

2021-08-01 14:42:47 字數 1094 閱讀 2303

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

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

解決辦法: 

將mysql的編碼從utf8轉換成utf8mb4

1. 修改my.ini [mysqld] character-set-server=utf8mb4

2. 在connector/j的連線引數中,不要加characterencoding引數。 不加這個引數時,預設值就時autodetect。

3. 將已經建好的表也轉換成utf8mb4

命令:alter

table

`table_name` convert to

character

set utf8mb4 collate utf8mb4_general_ci; (將table_name替換成你的表名)

4. 將需要使用emoji的字段設定型別為:

命令:alter

table

`table_name`modify column

`column_name` text character

set utf8mb4 collate utf8mb4_general_ci;

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

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

//對emoji表情轉義

function

emoji_encode

($str)else

}return

$strencode;

}//對emoji表情轉反義

function

emoji_decode

($str), $str);

return

$strdecode;

}表情符號位址

資料庫小技巧

1.返回第乙個非空數值 select coalesce null,null,null,w3schools.com null,example.com 返回 w3schools.com select coalesce null,1,2,w3schools.com 返回 1 應用 將乙個欄位中空值全部替換...

資料庫使用小技巧

包括安裝時提示有掛起的操作 收縮資料庫 壓縮資料庫 轉移資料庫給新使用者以已存在使用者許可權 檢查備份集 修復資料庫等。一 掛起操作 在安裝sql或sp補丁的時候系統提示之前有掛起的安裝操作,要求重啟,這裡往往重啟無用,解決辦法 到hkey local machine system currentc...

資料庫語句小技巧

工作遇到的花裡胡哨但是很實用的資料庫相關的小技巧 整體原創 一,sql語句獲取某一字段的長度 select length 某一字段 二,行轉列,列轉行 互轉的兩張表結構 sql語句 行轉列 select username,max case subject when 語文 then score els...