【发布时间】:2014-05-22 16:41:21
【问题描述】:
我有以下双字节 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 编码也不是。
标签: php encoding utf-8 character-encoding