Campagne : caractères spéciaux incorrects lorsque le jeu de caractères UTF-8 n’est pas déclaré dans la payload SOAP
Dans les workflows de messages transactionnels Adobe Campaign qui ingèrent des payloads d’événement SOAP, les caractères spéciaux tels que les ®, les ©, les ™ ou les apostrophes peuvent apparaître incorrectement dans les données d’événement stockées, l’aperçu, l’objet ou l’e-mail diffusé. Ce comportement est généralement dû au fait que les requêtes sont envoyées sans déclaration de jeu de caractères UTF-8 explicite, ce qui peut entraîner une interprétation implicite du codage côté serveur.
Description description
Une diffusion transactionnelle a été signalée dans laquelle des caractères spéciaux s’affichaient mal formés après l’ingestion de l’événement et son rendu. Le problème était visible dans la prévisualisation de l’événement et dans l’e-mail final diffusé.
Voici quelques exemples de caractères concernés :
- ® le rendu en tant que texte malformé tel que ®
- Autres symboles UTF-8 et ponctuation s’affichant incorrectement dans le sujet ou le corps
- L’enquête initiale a confirmé que la payload elle-même contenait des octets UTF-8 valides. Cela indique que la corruption n’a pas nécessairement été introduite dans le contenu source, mais pouvait se produire lors de l’ingestion de la requête SOAP lorsque le codage de la requête n’était pas explicitement déclaré.
D’autres tests ont montré :
- Les requêtes envoyées sans jeu de caractères UTF-8 explicite dans l’en-tête Type de contenu peuvent reproduire le problème
- Les requêtes envoyées avec charset=UTF-8 généraient correctement les mêmes caractères
- Le comportement était reproductible en dehors d’un environnement unique, ce qui suggérait qu’il ne s’agissait pas d’un problème de modèle spécifique au client
- Les différences d’outils de test étaient importantes, car certains outils appliquent automatiquement le format UTF-8 et peuvent masquer le problème lors de la validation
Résolution resolution
Assurez-vous que la requête SOAP déclare explicitement l’encodage UTF-8.
Utilisez l’en-tête suivant :
Type de contenu : text/xml ; charset=UTF-8
Il est également recommandé d’inclure la déclaration XML en haut du corps du SOAP :
< ?xml version=« 1.0 » encoding=« UTF-8 »?>
Résultat
Après avoir explicitement déclaré UTF-8 dans la requête, les caractères spéciaux s’affichent correctement dans les tests.