我有一個輸入字符串(URL編碼):編碼高代碼點(> U + FFFF)爲HTML實體
%F0%9F%98%8E
其中解碼是表情符號「」。
如何將其轉換爲HTML代碼😎
?
http://unicode.online-toolz.com/tools/unicode-html-entities-convertor.php
這個網站是做正是我需要的。
我有一個輸入字符串(URL編碼):編碼高代碼點(> U + FFFF)爲HTML實體
%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'));
這將返回😎
(注,這個答案是基於a modified version of functions provided by this answer here)
現在非常感謝很多人的魅力。 –
如果我通過這個函數url http://example.com/abc+xyz它變成http://example.com/abc xyz任何想法,我可以處理這個 –
@AbdulMannan你可以替換做一個str_replace('+ ','%20'),運行'mb_htmlentities',然後將'%20'轉換回'+'。你可以試着擺脫'urldecode'函數(因爲這是導致加號被轉換爲空格的原因),但這可能會導致mb_htmlentities問題。 YMMV :) – timgws
只是實現它自己,它很簡單:https://en.wikipedia.org/wiki/UTF -8#說明 – zerkms