开发者

PHP - convert unicode to character [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

How to get the character from unicode value in PHP?

PHP: Convert unicode codepoint to UTF-8

How can I convert a unicode character such as %u05E1 to a normal character via PHP?

Th开发者_运维知识库e chr function not covering it and I am looking for something similar.


"%uXXXX" is a non-standard scheme for URL-encoding Unicode characters. Apparently it was proposed but never really used. As such, there's hardly any standard function that can decode it into an actual UTF-8 sequence.

It's not too difficult to do it yourself though:

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

This converts the %uXXXX notation to HTML entity notation &#xXXXX;, which can be decoded to actual UTF-8 by html_entity_decode. The above outputs the characters "סע" in UTF-8 encoding.


Use hexdec to convert it to it's decimal representation first.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜