PHP - 将unicode转换为字符

时间:2011-09-01 17:36:34

标签: php unicode

  

可能重复:
  How to get the character from unicode value in PHP?
  PHP: Convert unicode codepoint to UTF-8

如何通过PHP将%u05E1等unicode字符转换为普通字符?

chr功能没有涵盖它,我正在寻找类似的东西。

2 个答案:

答案 0 :(得分:14)

“%uXXXX”是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');

这会将%uXXXX表示法转换为HTML实体表示法&#xXXXX;,可以通过html_entity_decode将其解码为实际的UTF-8。以上输出UTF-8编码中的字符“סע”。

答案 1 :(得分:0)

首先使用hexdec将其转换为十进制表示。

echo chr(hexdec("05E1"));
var_dump(hexdec("%u05E1") == hexdec("05E1")); //true