慕无忌1623718
PHP不知道这些Unicode转义序列。但是,由于未知的转义序列不受影响,您可以编写自己的函数来转换这些Unicode转义序列:function unicodeString($str, $encoding=null) {
if (is_null($encoding)) $encoding = ini_get('mbstring.internal_encoding');
return preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/u', create_function('$match', 'return mb_convert_encoding(pack("H*", $match[1]),
'.var_export($encoding, true).', "UTF-16BE");'), $str);}或者用一个匿名函数表达式而不是create_function:function unicodeString($str, $encoding=null) {
if (is_null($encoding)) $encoding = ini_get('mbstring.internal_encoding');
return preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/u', function($match) use ($encoding) {
return mb_convert_encoding(pack('H*', $match[1]), $encoding, 'UTF-16BE');
}, $str);}它的用法:$str = unicodeString("\u1000");