將高代碼位(>U+FFFF)編碼為HTML實體 [英] Encode a high code point (> U+FFFF) to HTML entities

查看:0
本文介紹了將高代碼位(>U+FFFF)編碼為HTML實體的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個輸入字符串(URL編碼):

%F0%9F%98%8E

哪個表情符號是"??"。

如何將其轉換為HTML碼😎?

http://unicode.online-toolz.com/tools/unicode-html-entities-convertor.php

這個站點正在做我需要的事情。

推薦答案

<?php

function mb_ord($char, $encoding = 'UTF-8') {
    if ($encoding === 'UCS-4BE') {
        list(, $ord) = (strlen($char) === 4) ? @unpack('N', $char) : @unpack('n', $char);
        return $ord;
    } else {
        return mb_ord(mb_convert_encoding($char, 'UCS-4BE', $encoding), 'UCS-4BE');
    }
}

function mb_htmlentities($string, $hex = false, $encoding = 'UTF-8') {
    return preg_replace_callback('/[x{80}-x{10FFFF}]/u', function ($match) use ($hex) {
        return sprintf($hex ? '&#x%X;' : '&#%d;', mb_ord($match[0]));
    }, $string);
}


echo mb_htmlentities(urldecode('%F0%9F%98%8E'));

這將返回&#128526;

(請注意,此答案基于a modified version of functions provided by this answer here。)

這篇關于將高代碼位(&gt;U+FFFF)編碼為HTML實體的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持IT屋!

查看全文
登錄 關閉
掃碼關注1秒登錄
發送“驗證碼”獲取 | 15天全站免登陸
全免费A级毛片免费看无码播放