原因:utf-8編碼可能2個位元組、3個位元組、4個位元組的字元,但是mysql的utf8編碼只支援3位元組的資料,而移動端的表情資料是4個位元組的字元。如果直接往採用utf-8編碼的資料庫中插入表情資料,程式中將報sql異常。
前提:mysql支援utf8mb4的版本不低於5.5.3,mysql驅動版本不能低於5.1.13。若不是,公升級到最新版本。
在網上查詢有以下幾種解決方案:
1、把暱稱在儲存進資料庫前,進行編碼轉換。
2、(1)把資料庫中暱稱的字段改為utf8mb4
(2)把tp5的資料庫配置檔案中的資料庫預設編碼(charset),有utf-8改為 utf8mb4。
3、過濾特殊表情符號
三種方法都可以解決
過濾微信暱稱emoji表情
過濾emoji表情與非emoji表情 public class emojifilter return false 非emoji表情字元判斷 param codepoint return private static boolean notisemojicharacter char codepoint...
微信公眾平台暱稱亂碼emoji表情
warn 2015 07 03 01 15 12,368 org.hibernate.engine.jdbc.spi.sqlexceptionhelper 143 sql error 1366,sqlstate hy000 error 2015 07 03 01 15 12,369 org.hibe...
PHP處理微信小程式暱稱帶有表情
方法一 這個方法是將表情替換成 空格 public function filteremoji str str return str 方法二 在儲存的時候 先進行轉義 讀取的時候反轉義一下 就可以了 將表情進行轉義 用於儲存的時候 public function emoji encode str el...