Campaign: caracteres especiales incorrectos cuando el conjunto de caracteres UTF-8 no se declara en la carga útil de SOAP
En los flujos de trabajo de mensajes transaccionales de Adobe Campaign que consumen cargas útiles de eventos de SOAP, los caracteres especiales como ®, ©, ™ o apóstrofos curvas pueden representarse incorrectamente en los datos de evento almacenados, la vista previa, la línea de asunto o el correo electrónico enviado. Este comportamiento suele deberse a solicitudes enviadas sin una declaración explícita de conjunto de caracteres UTF-8, lo que puede llevar a una interpretación implícita de la codificación del lado del servidor.
Descripción description
Se informó de un envío transaccional en el que los caracteres especiales parecían tener un formato incorrecto después de ingerir y procesar el evento. El problema era visible en la previsualización del evento y en el correo electrónico enviado final.
Algunos ejemplos de caracteres afectados son:
- ® procesamiento como texto mal formado, como®
- Otros símbolos y signos de puntuación UTF-8 que se muestran incorrectamente en el asunto o el cuerpo
- La investigación inicial confirmó que la propia carga útil contenía bytes UTF-8 válidos. Esto indicaba que los daños no necesariamente se introdujeron en el contenido de origen, pero podrían producirse durante la ingesta de solicitudes de SOAP cuando la codificación de la solicitud no se declaraba explícitamente.
Las pruebas adicionales mostraron:
- Las solicitudes enviadas sin un conjunto de caracteres UTF-8 explícito en el encabezado Content-Type podrían reproducir el problema
- Las solicitudes enviadas con charset=UTF-8 representaron correctamente los mismos caracteres
- El comportamiento era reproducible fuera de un solo entorno, lo que sugería que no se trataba de un problema de plantilla específico del cliente
- Las diferencias en las herramientas de prueba eran importantes, ya que algunas herramientas aplican automáticamente UTF-8 y pueden ocultar el problema durante la validación
Resolución resolution
Asegúrese de que la solicitud de SOAP declara explícitamente la codificación UTF-8.
Utilice el siguiente encabezado:
Content-Type: text/xml; charset=UTF-8
También se recomienda incluir la declaración XML en la parte superior del cuerpo de SOAP:
< ?xml version=“1.0” encoding=“UTF-8”?>
Resultado
Después de declarar explícitamente UTF-8 en la solicitud, los caracteres especiales se representaban correctamente en las pruebas.