显示其中的Unicode字符';使用PHP的s编号
好吧&我有一个疑问。是否有任何方法可以显示Unicode符号的唯一编号。例如,我有一个完整的符号(∫) & 它的Unicode编号和HTML代码分别是'U+222B'和'∫;',我可以通过如下打印HTML代码来显示符号显示其中的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数字,我们能达到同样的效果吗?因为在我的一个网站中,字符编码不正确。它只
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 );