目錄
utf-8 編碼的 emoji 表情或者某些特殊字元占用 4 個位元組。utf-8 編碼的常用中文字元占用 3 個位元組。
三個 php 內建函式:
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
// 返回具有 encoding 編碼的字串 str 包含的字元數。 多位元組的字元被計為 1。
// 如果給定的 encoding 無效則返回 false。
string mb_substr ( string $str , int $start [, int $length = null [, string $encoding = mb_internal_encoding() ]] )
// 根據字元數執行乙個多位元組安全的 substr() 操作。 位置是從 str 的開始位置進行計數。 第乙個字元的位置是 0。第二個字元的位置是 1。
// mb_substr() 函式根據 start 和 length 引數返回 str 中指定的部分。
int strlen ( string $string )
// 返回給定的字串 string 的長度。
函式如下:
function h**eemojichar($str)
}return false;
}
函式如下:
function removeemojichar($str)
$strarr = $mbsubstr;
}return implode('', $strarr);
}
mysql 中使用 utf8mb4 字符集。
php 對字串進行 base64 編碼,從資料庫中取出時再對字串進行解碼。
直接移除字串中的 emoji 表情(該方法簡單粗暴)
Emoji 特殊字元處理
emoji 特殊字元處理 對utf 8的mysql資料庫插入emoji等 特殊字元時會報錯。1.過濾 2.mysql字元設定為utf8mb4 public class emojifilter int len source.length for int i 0 i len i return false...
3種方法輕鬆處理php開發中emoji表情的問題
背景 一般mysql表設計時,都是用utf8字符集的。把帶有emoji的暱稱字段往裡面insert一下就沒了,整個字段變成了空字串。這是怎麼回事呢?原來是因為mysql的utf8字符集是3位元組的,而emoji是4位元組,這樣整個暱稱就無法儲存了。這要怎麼辦呢?我來介紹幾種方法 解決方案 1 使用u...
3種方法輕鬆處理php開發中emoji表情的問題
背景 一般mysql表設計時,都是用utf8字符集的。把帶有emoji的暱稱字段往裡面insert一下就沒了,整個字段變成了空字串。這是怎麼回事呢?原來是因為mysql的utf8字符集是3位元組的,而emoji是4位元組,這樣整個暱稱就無法儲存了。這要怎麼辦呢?我來介紹幾種方法 解決方案 1 使用u...