PHP處理字元中的emoji表情

2022-09-14 17:09:14 字數 1007 閱讀 9781

目錄

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...