如何在PHP中将文本UTC转换为十六进制?

时间:2016-06-09 06:24:19

标签: php ios apple-push-notifications

我现在正在努力发送推送ios,它对我来说工作正常,但问题是表情符号,当我发送表情符号时,它不会在表情符号中呈现,我谷歌搜索它说你需要将\ud83d\ude04此文字转换为\xf0\x9f\x98\x84,但我无法将其转换,我该如何转换为此文字? 有谁可以帮忙解决这个问题?

1 个答案:

答案 0 :(得分:1)

这可以帮到你:

$str = "\ud83d\ude04";

$replaced = preg_replace("/\\\\u([0-9A-F]{1,4})/i", "&#x$1;", $str);
$result = mb_convert_encoding($replaced, "UTF-16", "HTML-ENTITIES");
$result = mb_convert_encoding($result, 'utf-8', 'utf-16');

$resultHex = unpack('H*', $result);
$resultHex = $resultHex[1];
$resultHexStr = '\x' . implode('\x', str_split($resultHex, 2));

echo 'result = ' . $result;
echo '<br>';
echo 'hex = ' . $resultHexStr;

输出:

result = 
hex = \xf0\x9f\x98\x84