0

我正在从 iphone 应用程序向服务器发送一个字符串。该字符串可能包含表情符号 - 我正在编码并发送它。从服务器端,他们在 html 页面中显示它,他们如何将字符串转换为 EMOJI 字符

我的字符串是这样的

testing \ud83d\ude04 my \ud83d\udc0e Emoji \ud83c\udf85 hureee \u260e hai \ud83d\udeb2
4

2 回答 2

2

这看起来像 Unicode 字符的 JSON 编码(作为 UTF-16 代理对)。json_decode()应该正确解码:

<?php
    $json = '{"key":"testing \ud83d\ude04 my \ud83d\udc0e Emoji \ud83c\udf85 hureee \u260e hai \ud83d\udeb2"}';
    $obj = json_decode($json);
    echo $obj->{'key'};
?>

输出:

测试我的表情符号hureee ☎ hai 
于 2013-07-03T11:22:33.497 回答
0

您可以创建一个包含这些特定字符串列表的数组以及另一个包含它们的替换(例如图像)的数组,然后以这种方式使用 PHP 命令preg_replace

  <?php

    $originalString = 'testing \ud83d\ude04 my \ud83d\udc0e Emoji \ud83c\udf85 hureee \u260e hai \ud83d\udeb2';
    $patterns = array();
    $patterns[0] = '/\\\\ud83d\\\\ude04/';
    $patterns[1] = '/\\\\ud83d\\\\udc0e/';
    $patterns[2] = '/\\\\ud83c\\\\udf85/';
    $patterns[3] = '/\\\\ud83c\\\\udf85/';
    $patterns[4] = '/\\\\u260e/';
    $patterns[5] = '/\\\\ud83d\\\\udeb2/';
    $replacements = array();
    $replacements[5] = '<img src="image6URL" alt="alternative text" />';
    $replacements[4] = '<img src="image5URL" alt="alternative text" />';
    $replacements[3] = '<img src="image4URL" alt="alternative text" />';
    $replacements[2] = '<img src="image3URL" alt="alternative text" />';
    $replacements[1] = '<img src="image2URL" alt="alternative text" />';
    $replacements[0] = '<img src="image1URL" alt="alternative text" />';

    $newString = preg_replace($patterns, $replacements, $originalString);

echo  $newString;

?>

$newString 将是您可以在 HTML 页面中用作输出的结果字符串。

请注意,表情符号中的反斜杠必须在正则表达式中使用 3 个额外的反斜杠进行转义

于 2013-07-03T11:07:41.717 回答