Campanha: caracteres especiais incorretos quando o conjunto de caracteres UTF-8 não é declarado na carga do SOAP
Nos workflows de mensagens transacionais do Adobe Campaign que assimilam cargas de evento do SOAP, caracteres especiais como ®, ©, ™ ou apóstrofos curvos podem ser renderizados incorretamente nos dados de evento armazenados, na pré-visualização, na linha de assunto ou no email entregue. Normalmente, esse comportamento é causado por solicitações enviadas sem uma declaração de conjunto de caracteres UTF-8 explícita, o que pode levar à interpretação implícita da codificação do lado do servidor.
Descrição description
Uma entrega transacional foi relatada em que caracteres especiais pareciam malformados após o evento ser assimilado e renderizado. O problema estava visível na pré-visualização do evento e no email final entregue.
Exemplos de caracteres afetados incluem:
- ® renderização como texto malformado, como ®
- Outros símbolos UTF-8 e pontuação exibidos incorretamente no assunto ou no corpo
- A investigação inicial confirmou que a própria carga continha UTF-8 bytes válidos. Isso indicou que a corrupção não era necessariamente introduzida no conteúdo original, mas poderia ocorrer durante a assimilação da solicitação do SOAP, quando a codificação da solicitação não era explicitamente declarada.
Outros testes mostraram:
- Solicitações enviadas sem um conjunto de caracteres UTF-8 explícito no cabeçalho Content-Type podem reproduzir o problema
- As solicitações enviadas com charset=UTF-8 renderizaram os mesmos caracteres corretamente
- O comportamento era reproduzível fora de um único ambiente, o que sugeria que não era um problema de modelo específico do cliente
- As diferenças nas ferramentas de teste foram importantes, pois algumas ferramentas aplicam automaticamente o UTF-8 e podem ocultar o problema durante a validação
Resolução resolution
Certifique-se de que a solicitação do SOAP declare explicitamente a codificação UTF-8.
Use o seguinte cabeçalho:
Tipo de conteúdo: text/xml; charset=UTF-8
Também é recomendável incluir a declaração XML na parte superior do corpo do SOAP:
< ?xml version=“1.0” encoding=“UTF-8”?>
Resultado
Depois de declarar explicitamente UTF-8 na solicitação, caracteres especiais são renderizados corretamente no teste.