我有一个字符串,其中包含以下格式的项目符号•:
$string = "Yay bullets!!\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n#somany";
我需要回声显示子弹的线。我最接近打印出来的方法是创建$string=“\u2022”;
然后回显json_decode('“'.$string.'”');
,它可以很好地打印项目符号。
当我尝试对完整的$string
执行同样的操作时,我没有得到任何结果,也没有错误。
以下是我对其结果输出所做的一些尝试:
$raw = htmlspecialchars("Yay bullets!!\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n#yes", ENT_QUOTES);
echo $raw;
结果:
Yay bullets!!
\u2022
\u2022
\u2022
\u2022
\u2022
#yes
当我尝试:
echo mb_convert_encoding($raw, 'UTF-8', 'HTML-ENTITIES');
结果:同上。没有变化。
当我尝试:
echo json_decode('"' . $raw . '"');
结果:无输出。
当我尝试:
echo mb_convert_encoding($raw, 'UTF-8', 'UTF-16BE');
结果:
我将非常感谢帮助弄清楚如何正确地输出这一点。
多谢了。
编辑
除了项目符号之外,我还无法打印出诸如\\ud83d\\udc93
之类的emoji参考代码。此处参考:http://emojipedia.org/face-with-tores-of-joy/
你可以这样做。这对双方都有效。请查收
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;
}
$r = "Yay bullets!!\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n\\u2022\n#somany";
echo decodeEmoticons($r);
$src = "\u263a\ud83d\ude00\ud83d\ude01\ud83d\ude02\ud83d\ude03";
echo decodeEmoticons($src);