Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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
PHP-将unicode转换为字符_Php_Unicode - Fatal编程技术网

PHP-将unicode转换为字符

PHP-将unicode转换为字符,php,unicode,Php,Unicode,可能重复: 如何通过PHP将unicode字符(如%u05E1)转换为普通字符 chr函数没有覆盖它,我正在寻找类似的东西。首先使用它将其转换为十进制表示形式 echo chr(hexdec("05E1")); var_dump(hexdec("%u05E1") == hexdec("05E1")); //true “%uxxx”是URL编码Unicode字符的非标准方案。很明显,它是被提议的,但从未真正使用过。因此,几乎没有任何标准函数可以将其解码为实际的UTF-8序列 不过,自己动手并

可能重复:

如何通过PHP将unicode字符(如
%u05E1
)转换为普通字符

chr
函数没有覆盖它,我正在寻找类似的东西。

首先使用它将其转换为十进制表示形式

echo chr(hexdec("05E1"));
var_dump(hexdec("%u05E1") == hexdec("05E1")); //true
“%uxxx”是URL编码Unicode字符的非标准方案。很明显,它是被提议的,但从未真正使用过。因此,几乎没有任何标准函数可以将其解码为实际的UTF-8序列

不过,自己动手并不难:

$string = '%u05E1%u05E2';
$string = preg_replace('/%u([0-9A-F]+)/', '&#x$1;', $string);
echo html_entity_decode($string, ENT_COMPAT, 'UTF-8');

这将
%uxxx
符号转换为HTML实体符号
和#xXXXX,可通过
html\u entity\u decode
解码为实际UTF-8。以上输出UTF-8编码中的字符“סע”。

请定义“普通字符”对您来说是什么。
chr
仅处理ASCI中定义的代码点,不处理多字节Unicode字符。上面的
echo
s“?”。谢谢deceze!它工作得很好:)简直就是天才!