使用PHP显示来自it's数字的Unicode字符


Displaying Unicode character from it's number using PHP

ok &我有个问题。是否有任何方法显示Unicode符号从它的唯一数字。如。积分符号(∫)&它是Unicode码&HTML代码分别为'U+222B'和'&我可以像下面这样打印HTML代码来显示这个符号。

echo "& #8747;"; //Displays Integral [∫] symbol if we remove space after Ampersand.

但是有了Unicode编号,我们能达到同样的效果吗?因为在我的一个网站字符编码不正确。它只显示Unicode数字,如下所示。

%u03A8 %u0D24 etc.

请分享你的想法。

%u03A8 %u0D24 etc.

这看起来像JavaScript的window.escape()函数的输出。将JavaScript代码改为调用window.encodeURIComponent(),并在必要时使用urldecode()在PHP端解码其输出。

如果损坏的字符串已经存储在数据库中,您可以尝试使用类似于下面的代码来清理它们:

$s = preg_replace_callback('/(?:%u[0-9A-F]{4})+/', function ($m) {
    return mb_convert_encoding(
        hex2bin(str_replace('%u', '', $m[0])), 'UTF-8', 'UTF-16BE');
}, $s );

不确定这是否适用于您的客户,但值得一试:

echo mb_convert_encoding('&#' . intval(0x0D24) . ';', 'UTF-8', 'HTML-ENTITIES');