PHP ne connaît pas ces séquences d'échappement Unicode. Mais comme les séquences d'échappement inconnues ne sont pas affectées, vous pouvez écrire votre propre fonction qui convertit ces séquences d'échappement 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);
}
Ou avec une expression de fonction anonyme au lieu de 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);
}
Son utilisation:
$str = unicodeString("\u1000");