PHP轉換emoji表情為HTML字元實體
移動端輸入時允許輸入表情,表情實際上是UTF-16編碼,在資料庫儲存上會存在丟失,當前如果把資料庫字碼編碼修改為 utf8mb4 也是可以儲存。
如果不想修改其它則可以通過轉換把這些表情符轉換為HTML字元實體儲存。
程式碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
function utf16_to_entities(){
$content = mb_convert_encoding( $content , `utf-16` );
$bin = bin2hex( $content );
$arr = str_split ( $bin , 4);
$l = count ( $arr );
$str = `` ;
for ( $n = 0; $n < $l ; $n ++) {
if (isset( $arr [ $n + 1]) && ( `0x` . $arr [ $n ] >= 0xd800 && `0x` . $arr [ $n ] <= 0xdbff && `0x` . $arr [ $n + 1] >= 0xdc00 && `0x` . $arr [ $n + 1] <= 0xdfff)) {
$H = `0x` . $arr [ $n ];
$L = `0x` . $arr [ $n + 1];
$code = ( $H - 0xD800) * 0x400 + 0x10000 + $L - 0xDC00;
$str .= `&#` . $code . `;` ;
$n ++;
} else {
$str .=mb_convert_encoding(hex2bin( $arr [ $n ]), `utf-8` , `utf-16` );
}
}
return $str ;
} |
注意:這裡字元儲存為 utf-8 如果程式碼所處理的格式為 GBK 自行修改。
本文轉自 ttlxihuan 51CTO部落格,原文連結:http://blog.51cto.com/php2012web/1863313
相關文章
- 中文字元轉為HTML字元實體字元HTML
- PHP中處理emoji表情PHP
- JavaScript html標籤轉義為實體字元JavaScriptHTML字元
- js判斷字串是否含有特殊字元和emoji表情JS字串字元
- javascript 字元轉換為ascii碼,ascii碼轉換為字元JavaScript字元ASCII
- html標籤的尖括號轉碼為字元實體HTML字元
- html字元實體HTML字元
- HTML字元實體和轉義字串大全HTML字元字串
- php+mysql 解決emoji表情符號問題PHPMySql符號
- Laravel 專案實戰中如何快速整合 Emoji 表情包?Emoji 表情包太豐富了Laravel
- mysql 儲存emoji表情MySql
- MySQL儲存 emoji 表情MySql
- php過濾html標籤、特殊字元、轉義字元PHPHTML字元
- win10自帶字元表情如何使用_win10 emoji表情符號的使用教程Win10字元符號
- 數值轉換為字元字元
- php 的字元編碼轉換工具 (轉)PHP字元
- html_entity_decode()將HTML實體轉成字元原型HTML字元原型
- 字元如何透過函式成為html實體字元函式HTML
- HTML 字元實體簡介HTML字元
- HTML 字元實體參考HTML字元
- 前端如何處理emoji表情前端
- 在 Laravel 中使用 emoji 表情Laravel
- PHP資料型別轉換(字元轉數字,數字轉字元)PHP資料型別字元
- 原生js 實現輸入框emoji表情釋出JS
- html中空格字元實體整理HTML字元
- iOS Emoji表情編碼/解碼iOS
- 將HTML字元轉換為DOM節點並動態新增到文件中HTML字元
- HTML字元實體簡單介紹HTML字元
- 網頁中常用HTML字元實體網頁HTML字元
- Android Jetpack - Emoji表情符號初探AndroidJetpack符號
- 網站如何開啟Emoji 表情支援網站
- PHP實現圖片轉字元畫PHP字元
- 如何實現將markdown檔案實時轉換為html文件HTML
- MYSQL資料庫與Emoji表情的故事MySql資料庫
- emoji等表情符號存mysql的方法符號MySql
- iOS 11新Emoji表情偷跑:好歡樂iOS
- bili-emoji自定義表情包設定
- Java如何將字串轉換為字元陣列?Java字串字元陣列