Décodage des séquences d'échappement Unicode en caractères UTF-8 en PHP
Question : Existe-t-il une fonction intégrée en PHP qui peut décoder les séquences d'échappement Unicode comme "u00ed" en le caractère UTF-8 correspondant, tel que "í" ?
Réponse : Bien que PHP ne fournisse pas de fonction directe pour cette tâche, vous pouvez utiliser une combinaison d'expressions régulières et de fonctions d'encodage de caractères pour obtenir le résultat souhaité :
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, $str);
Ce code utilise une expression régulière pour faire correspondre les séquences d'échappement Unicode et les remplace par leurs caractères UTF-8 correspondants en utilisant mb_convert_encoding().
Dans le cas où la séquence d'échappement est au format UTF-16 :
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE'); }, $str);
Ce code modifié suppose que la séquence d'échappement est codée en UTF-16 , qui est couramment utilisé dans certains langages de programmation et dans la notation JSON.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!