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

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

Linda Hamilton
Libérer: 2024-12-23 12:02:10
original
720 Les gens l'ont consulté

How can I decode Unicode escape sequences in PHP?

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

Si vous avez affaire à des séquences d'échappement Unicode comme "u00ed" en PHP, vous aurez besoin un moyen de les décoder en caractères codés UTF-8 appropriés. La fonction preg_replace_callback() fournit une solution à ce problème.

Pour décoder les séquences d'échappement Unicode à l'aide de preg_replace_callback(), suivez ces étapes :

$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 aux séquences d'échappement Unicode comme "u00ed" et capture le point de code hexadécimal entre parenthèses. La fonction de rappel correspondante utilise ensuite les fonctions pack() et mb_convert_encoding() pour convertir le point de code hexadécimal en son caractère UTF-8 correspondant.

Si vous travaillez avec le style C/C/Java/Json Séquences d'échappement basées sur UTF-16, vous pouvez utiliser une version légèrement différente de l'expression régulière :

$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

En spécifiant 'UTF-16BE' comme encodage pour mb_convert_encoding(), vous vous assurez que le format big-endian UTF-16 est correctement décodé en UTF-8.

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