Campaign: caratteri speciali errati quando il set di caratteri UTF-8 non è dichiarato nel payload di SOAP

Nei flussi di lavoro dei messaggi transazionali di Adobe Campaign che acquisiscono i payload degli eventi di SOAP, i caratteri speciali come ®, ©, ™ o apostrofi curvi potrebbero non essere riprodotti correttamente nei dati dell’evento memorizzati, nell’anteprima, nella riga dell’oggetto o nell’e-mail consegnata. Questo comportamento è in genere causato dall’invio di richieste senza una dichiarazione di charset UTF-8 esplicita, che può portare a un’interpretazione implicita della codifica lato server.

Descrizione description

È stata segnalata una consegna transazionale in cui i caratteri speciali apparivano in formato non corretto dopo l’acquisizione e il rendering dell’evento. Il problema era visibile nell’anteprima dell’evento e nell’e-mail consegnata finale.

Esempi di caratteri interessati includono:

  • ® il rendering come testo non corretto, ad esempio ®
  • Altri simboli UTF-8 e punteggiatura non vengono visualizzati correttamente nell’oggetto o nel corpo
  • L’indagine iniziale ha confermato che il payload stesso conteneva byte UTF-8 validi. Ciò indica che il danneggiamento non è stato necessariamente introdotto nel contenuto sorgente, ma potrebbe verificarsi durante l’acquisizione della richiesta SOAP quando la codifica della richiesta non è stata dichiarata in modo esplicito.

Ulteriori test hanno mostrato:

  • Le richieste inviate senza un charset UTF-8 esplicito nell’intestazione Content-Type potrebbero riprodurre il problema
  • Richieste inviate con charset=UTF-8 riprodotte correttamente gli stessi caratteri
  • Il comportamento era riproducibile all’esterno di un singolo ambiente, il che suggeriva che non si trattava di un problema di modello specifico per il cliente
  • Le differenze tra gli strumenti di test sono importanti, perché alcuni strumenti applicano automaticamente UTF-8 e possono nascondere il problema durante la convalida

Risoluzione resolution

Assicurati che la richiesta SOAP dichiari esplicitamente la codifica UTF-8.

Utilizza la seguente intestazione:

Tipo di contenuto: text/xml; charset=UTF-8

Si consiglia inoltre di includere la dichiarazione XML nella parte superiore del corpo del SOAP:

< ?xml version=“1.0” encoding=“UTF-8”?>

Risultato

Dopo aver dichiarato esplicitamente UTF-8 nella richiesta, i caratteri speciali vengono riprodotti correttamente nel test.

recommendation-more-help
experience-cloud-kcs-help-kbarticles