Campaign: Falsche Sonderzeichen, wenn UTF-8-Zeichensatz nicht in der SOAP-Payload deklariert wird
In Adobe Campaign-Transaktionsnachrichten-Workflows, die SOAP-Ereignis-Payloads aufnehmen, können Sonderzeichen wie ®, ©, ™ oder geschweifte Apostrophe in den gespeicherten Ereignisdaten, der Vorschau, der Betreffzeile oder der zugestellten E-Mail falsch dargestellt werden. Dieses Verhalten wird in der Regel dadurch verursacht, dass -Anfragen ohne explizite UTF-8-Zeichensatzdeklaration gesendet werden, was zu einer impliziten Server-seitigen Kodierungs-Interpretation führen kann.
Beschreibung description
Ein Transaktionsversand wurde gemeldet, bei dem Sonderzeichen fehlerhaft erschienen, nachdem das Ereignis aufgenommen und gerendert wurde. Das Problem war in der Ereignisvorschau und in der endgültigen zugestellten E-Mail sichtbar.
Beispiele für betroffene Zeichen:
- ® Darstellung als falsch formatierter Text, z. B. â®
- Andere UTF-8-Symbole und Interpunktion, die im Subjekt oder Hauptteil falsch angezeigt werden
- Die erste Untersuchung bestätigte, dass die Payload selbst gültige UTF-8-Bytes enthielt. Dies deutete darauf hin, dass die Beschädigung nicht unbedingt in den Quellinhalt eingeführt wurde, aber während der Aufnahme von SOAP-Anfragen auftreten konnte, wenn die Anfragencodierung nicht explizit deklariert wurde.
Weitere Tests ergaben:
- Anfragen, die ohne expliziten UTF-8-Zeichensatz in der Inhaltstyp-Kopfzeile gesendet werden, können das Problem reproduzieren
- Anfragen, die mit charset=UTF-8 gesendet wurden, haben dieselben Zeichen korrekt gerendert
- Das Verhalten war außerhalb einer einzigen Umgebung reproduzierbar, was darauf hindeutet, dass dies kein kundenspezifisches Vorlagenproblem war
- Unterschiede bei Test-Tools spielen eine Rolle, da einige Tools automatisch UTF-8 erzwingen und das Problem während der Validierung ausblenden können
Lösung resolution
Stellen Sie sicher, dass in der SOAP-Anfrage explizit UTF-8-Codierung deklariert wird.
Verwenden Sie die folgende Kopfzeile:
Content-Type: text/xml; charset=UTF-8
Es wird außerdem empfohlen, die XML-Deklaration am Anfang des SOAP-Bodys einzuschließen:
< ?xml version=„1.0“ encoding=„UTF-8“?>
Ergebnis
Nachdem in der Anfrage explizit UTF-8 deklariert wurde, werden Sonderzeichen beim Testen korrekt wiedergegeben.