Maison >interface Web >js tutoriel >Comment décoder les chaînes Unicode échappées en JavaScript ?

Comment décoder les chaînes Unicode échappées en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-07 11:32:03923parcourir

How to Decode Escaped Unicode Strings in JavaScript?

Décodage de chaînes Unicode codées en JavaScript

Lorsque vous travaillez avec des chaînes contenant des caractères Unicode codés, il peut être difficile de les décoder correctement. Cet article aborde le problème du décodage des chaînes qui ont été codées avec des caractères Unicode échappés.

Le problème spécifique décrit dans la question implique une chaîne qui ressemble à httpu00253Au00252Fu00252Fexample.com. Après avoir essayé diverses méthodes telles que unescape, decodeURI et decodeURIComponent, la solution suggérée consiste à utiliser le remplacement de chaîne.

Cependant, la condition initiale est importante à prendre en compte. La chaîne en question n'est pas directement saisie mais est plutôt une sous-chaîne obtenue à partir d'un autre morceau de code, comme le montre l'exemple suivant :

var s = 'http\u00253A\u00252F\u00252Fexample.com';

Cela explique pourquoi unescape() ne donne pas le résultat attendu.

La clé pour décoder de telles chaînes réside dans l'utilisation de JSON.parse. En encapsulant la chaîne codée entre guillemets doubles et en l'analysant au format JSON, le navigateur décode automatiquement les caractères Unicode. L'exemple suivant illustre cette approche :

unescape(JSON.parse('"http\u00253A\u00252F\u00252Fexample.com"'));

// Output: 'http://example.com'

Dans ce cas, unescape() est utilisé pour supprimer toutes les séquences d'échappement potentiellement restantes. Notez qu'unescape() est obsolète dans les environnements autres que les navigateurs et n'existe pas dans TypeScript. Pour une compatibilité plus large, il est recommandé d'utiliser plutôt decodeURIComponent.

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