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

Comment décoder les séquences d'échappement Unicode en PHP ?

Patricia Arquette
Libérer: 2024-12-22 14:26:19
original
349 Les gens l'ont consulté

How to Decode Unicode Escape Sequences in PHP?

Décodage des séquences d'échappement Unicode en PHP

L'encodage de caractères peut être un sujet déroutant, en particulier lorsque vous travaillez avec des séquences d'échappement Unicode comme "u00ed". Si vous vous demandez comment décoder ces séquences en caractères UTF-8 appropriés en PHP, cet article vous fournira une solution simple.

Utiliser preg_replace_callback

Pour décoder Unicode séquences d'échappement en PHP, vous pouvez utiliser la fonction preg_replace_callback(). Voici un extrait de code qui démontre son utilisation :

$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);
Copier après la connexion

Ce modèle d'expression régulière correspond à toutes les séquences d'échappement Unicode et utilise une fonction de rappel pour décoder chaque correspondance. La fonction de rappel effectue les opérations suivantes :

  • Convertit la représentation hexadécimale du point de code Unicode (par exemple, "00ed") en une chaîne binaire à l'aide de pack('H*').
  • Décode la chaîne binaire en UTF-8 à l'aide de mb_convert_encoding().

Gestion des différents Encodages Unicode

Si vos données Unicode sont basées sur UTF-16 au lieu de UCS-2, ce qui est courant en C/C, Java et JSON, vous pouvez utiliser une version légèrement différente du rappel function :

$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);
Copier après la connexion

Ce changement garantit que la fonction de décodage gère correctement les données codées en UTF-16.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal