php 實現mysql存儲支持emoji表情

最近一直在作微信公衆號相關的需求,忽然發現若是用戶的暱稱是emoji標籤的話,這時候用戶的暱稱沒法正常的存儲到數據庫中php

一:緣由:sql

這是因爲Mysql的utf8編碼最多3個字節,然而emoji標籤的是4個字節,因此沒法存儲emoji標籤信息,因此須要將數據的編碼改爲utf8mb4數據庫

二:解決:微信

1:設置鏈接編碼編碼

SET NAMES utf8mb4

上面的命令至關於:code

SET character_set_client='utf8mb4';
SET character_set_connection='utf8mb4';
SET character_set_results='utf8mb4';

2:設置數據庫編碼ci

ALTER DATABASE database_name(數據庫名) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

3:設置表編碼unicode

ALTER TABLE table_name(表名) CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

設置如上編碼以後在php鏈接數據時設置:io

'charset' => 'utf8mb4',

進行如上配置以後,這時候存儲emoji標籤時存儲成功!!!table

相關文章
相關標籤/搜索