Que faire si le résultat du codage/décodage des entités HTML est incorrect lors du débogage d'API
Lors du débogage d'API, si le résultat du codage/décodage des entités HTML est incorrect, ce n'est généralement pas l'outil qui est défectueux, mais vous vous êtes trompé sur le type d'entrée, le niveau d'échappement ou le jeu de caractères. Vérifiez d'abord si les données d'origine sont des entités HTML, un encodage URL ou un échappement JSON, puis choisissez la méthode de décodage correspondante, et le résultat correspondra généralement.
Lorsque des fragments comme &, ', < apparaissent dans la réponse d'une API, beaucoup ont pour réflexe de les coller directement dans un outil pour les décoder. Mais si ce contenu a déjà été échappé une fois, le décoder à nouveau donnera un résultat erroné. Voici comment localiser et corriger le problème, étape par étape.
Déterminez d'abord de quel type d'encodage il s'agit
Les entités HTML sont des espaces réservés de la forme &name; ou &#nombre;, qui ne sont restaurés en caractères qu'au moment du rendu par le navigateur. Elles sont différentes de l'encodage URL (%20) et de l'échappement de chaînes JSON (\", \u4e2d). Si vous vous trompez de type, le résultat du décodage sera naturellement incorrect.
Vous pouvez vérifier dans cet ordre :
- Observez la forme des caractères :
&...;indique une entité HTML,%suivi de deux chiffres hexadécimaux indique un encodage URL, une barre oblique inverse indique un échappement JSON ou de langage de programmation. - Comptez les niveaux d'échappement :
&amp;répété indique un double échappement, nécessitant deux décodages pour restaurer&. - Confirmez le jeu de caractères : si l'API déclare UTF-8 mais renvoie en réalité du GBK, des points d'interrogation ou des carrés apparaîtront après décodage.
- Vérifiez s'il y a un double emballage : certaines API insèrent des fragments HTML dans un champ JSON, il faut d'abord décoder le JSON puis les entités.
L'outil de codage/décodage d'entités HTML exécuté localement dans le navigateur ne téléverse pas vos données, il est adapté pour coller des fragments de réponse d'API et faire des tests comparatifs.
Différence entre le codage/décodage d'entités HTML et l'échappement de caractères
La différence entre le codage/décodage d'entités HTML et l'échappement de caractères réside dans leur portée : le codage/décodage d'entités traite les espaces réservés &...; dans les documents HTML, tandis que l'échappement de caractères traite la représentation des caractères spéciaux dans une chaîne au niveau du langage ou de la couche de transport. Les deux visent à éviter l'ambiguïté, mais à des niveaux différents.
La différence entre le codage/décodage d'entités HTML et l'échappement de caractères se manifeste aussi dans la réversibilité. Le codage/décodage d'entités est généralement une correspondance biunivoque, < est restauré en