Maison >développement back-end >tutoriel php >Comment puis-je décoder les séquences d'échappement Unicode en UTF-8 en PHP ?

Comment puis-je décoder les séquences d'échappement Unicode en UTF-8 en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 03:49:15601parcourir

How Can I Decode Unicode Escape Sequences to UTF-8 in PHP?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn