我已经在twillio中设置了一个twiml应用程序,它将所有短信(来自我的twillio号码)转发/发布到域名。 在那个域上我可以得到消息body.issue是当有人发送短信中的表情符号时。 为此,我做了json_encode($ sms-> body);这给我看了表情符号。 “\ u263a \ ud83d \ ude00 \ ud83d \ ude01 \ ud83d \ ude02 \ ud83d \ ude03”(这些是通过短信发来的一些表情符号)
我也为上面的文字做了json_decode(),但它没有显示正确的表情符号图标。它显示如下(â€ðŸ€〜ðŸ〜ðŸ〜,ðŸ〜ƒ)
我应该使用哪种编码或解码请帮帮我。
答案 0 :(得分:4)
您只需按照以下步骤操作即可 1.确保你已经设定 标题(" Content-Type:text / html; charset = utf-8"); 2.使用这种方法
function decodeEmoticons($src) {
$replaced = preg_replace("/\\\\u([0-9A-F]{1,4})/i", "&#x$1;", $src);
$result = mb_convert_encoding($replaced, "UTF-16", "HTML-ENTITIES");
$result = mb_convert_encoding($result, 'utf-8', 'utf-16');
return $result;
}
$src = "\u263a\ud83d\ude00\ud83d\ude01\ud83d\ude02\ud83d\ude03";
echo decodeEmoticons($src);
它会显示表情符号图标
答案 1 :(得分:0)
首先查看您的数据库Collation并设置utf8_general_ci之后检查您的表Collation并设置utf8_unicode_ci或utf8_general_ci