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.