Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示其中的Unicode字符';使用PHP的s编号_Php_Unicode_Encoding_Character Encoding_Symbols - Fatal编程技术网

显示其中的Unicode字符';使用PHP的s编号

显示其中的Unicode字符';使用PHP的s编号,php,unicode,encoding,character-encoding,symbols,Php,Unicode,Encoding,Character Encoding,Symbols,好吧&我有一个疑问。是否有任何方法可以显示Unicode符号的唯一编号。例如,我有一个完整的符号(∫) & 它的Unicode编号和HTML代码分别是'U+222B'和'∫;',我可以通过如下打印HTML代码来显示符号 echo "& #8747;"; //Displays Integral [∫] symbol if we remove space after Ampersand. 但使用Unicode数字,我们能达到同样的效果吗?因为在我的一个网站中,字符编码不正确。它只

好吧&我有一个疑问。是否有任何方法可以显示Unicode符号的唯一编号。例如,我有一个完整的符号(∫) & 它的Unicode编号和HTML代码分别是'U+222B'和'∫;',我可以通过如下打印HTML代码来显示符号

echo "& #8747;"; //Displays Integral [∫] symbol if we remove space after Ampersand.
但使用Unicode数字,我们能达到同样的效果吗?因为在我的一个网站中,字符编码不正确。它只显示Unicode数字,如下所示

%u03A8 %u0D24 etc.

请分享您的想法。提前感谢。

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

echo mb_convert_encoding('&#' . intval(0x0D24) . ';', 'UTF-8', 'HTML-ENTITIES');
这看起来像是JavaScript函数的输出。将JavaScript代码改为调用,必要时在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 );

这可能是一条注释。。无需回答。@silkfire%u0D24&%u03A8的等效Unicode字符是'ത' & 'ψ’分别。但您的解决方案给出了“×$”!对不起。您能试试我的第三个解决方案吗?@silkfire谢谢。现在它显示正确。但我认为它是以unicode数字(%u0D24)出现的,因为@PleaseStandOkay指出了Javascript函数。请选择最适合您的答案。接受并投票。
$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 );