Can I use unicode value of a character (for example U+0021
for !
) in php? and convert it to original character in printing (with chr()
or other functions)?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
function replace_unicode_escape_sequence($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); } function unicode_chr ($chr) { $x = explode("+", $chr); $str = "\u".end($x); return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str); } var_dump(unicode_chr("U+0021")); // string(1) "!"
Adapted from: How to decode Unicode escape sequences like "\u00ed" to proper UTF-8 encoded characters?