我有一个双字节的UTF8字符,如下所示。
\ud83d\ude04
(这是iOS表情符号)我想转换为UTF-16格式。
U+1F604
我应该如何做到这一点? 我已经尝试了以下方法:
$utf8_string = "\ud83d\ude04";
$utf16_string = mb_convert_encoding($utf8_string, 'UTF-16', 'UTF-8');
但是我得到的是原始的utf8字符串,没有转换。
我想我可能需要先解码utf8字符串。我尝试使用json_decode进行解码(这很好地解码了utf8字符集)。但仍然没有成功。
\u...
不是 UTF-8 编码,而U+...
也不是 UTF-16 编码。前者看起来像字符的 JSON 编码表示形式,后者看起来像正式的 Unicode 代码点。两者都不是 UTF 编码。 - deceze