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

2021-09-26 21:37:52 字數 979 閱讀 1010

1、儲存問題

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

2、查詢問題

儲存沒問題了之後,查詢的時候對於emoji的模糊查詢會報錯

[err] 1267 - illegal mix of collations (utf8mb4_general_ci,implicit) and (utf8_general_ci,coercible) for operation 'like'
1.第一種解決方式:運用sql的convert(字段 using 字符集)函式進行強制轉換

從報錯資訊入手,我從網上先開始找到的解決方式是把傳進來的字段進行強制的字符集轉換,類似於

t1.remark_name like convert(concat("%", #, "%") using utf8mb4)

or t2.nickname like convert(concat("%", #, "%") using utf8mb4)

運用sql的convert(字段 using 字符集)函式進行強制轉換,這樣轉換過後就不會報錯了,但是還有問題就是對於emoji表情的搜尋並不準確,輸入表情什麼都搜不到。

之後我又著手優化,在網上找到了另一種方式,這種方式可以搜尋到表情。

2.第二種解決方式:在要搜尋的字段前面加上關鍵字binary

binary t1.remark_name like concat("%", #, "%")

or binary t2.nickname like concat("%", #, "%")

mysql資料庫怎麼存入emoji表情

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

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

為什麼我們設定表的的字元型別為utf8卻不能存放emoji呢?原來utf8可能是2或3或4個位元組,而mysql的utf8是3個位元組,存放乙個emoji是需要4個位元組的,自然不夠。mysql資料庫在5.5.3之後開始支援utf8mb4字符集,所以mysql版本是5.5.3 的都可以設定讓資料庫儲...

IOS開發中emoji表情如何判斷

在ios開發中,很多時候我們要對textfield中的文字進行限制,包括有沒有空格,長度在哪個範圍裡面。不過,最近發現乙個問題,ios手機自帶的鍵盤裡面可以輸入一些emoji表情,而且這些表情在伺服器上根本不支援,這時候沒辦法只能控制使用者輸出了,那麼我們如何來判斷文字中是否含有emoji表情呢?首...