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 に答える