開發環境:PHP+MySQL+TP5
方案一
- 在存儲之前用base64對數據進行編碼然後存入
base64_encode($str);
- 從數據庫拿出來之前再進行解碼
base64_decode($str);
方案二
- 數據庫設置字符集
- 數據表對應字段設置字符集
- 設置tp5框架數據庫編碼 (沒有設置這一項,數據庫裏會把表情存儲爲四個問號)
方案三
直接去除暱稱裏的表情
// 過濾掉emoji表情
function filterEmoji($str)
{
$str = preg_replace_callback(
'/./u',
function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},
$str);
return $str;
}
因項目已經運行,數據庫裏已經有數據,前端獲取暱稱的地方很多,改動很繁瑣,故使用了方案二