Avalados por :

Cómo convertir la codificación de un archivo adjunto de UTF-8 a ISO-8859-1 (Latin-1) - Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 128 Vistas
0
Cargando...

Hola,

Tenemos un problema con el adaptador de correo...

Estamos intentando enviar un correo electrónico desde XI a algunos proveedores de servicios. Los datos salientes se almacenan en una estructura XML. Esta estructura cumple con las convenciones del formato del Paquete de Correo, que se utiliza para la generación dinámica de correos. El contenido de esta estructura de Paquete de Correo es una cadena separada por punto y coma, que debe adjuntarse como un archivo CSV al correo saliente. Hasta aquí todo funciona bien. Recibimos el correo con el adjunto del sistema, lo enviamos a un servidor SMTP y lo transferimos a una dirección de correo electrónico previamente definida.

Pero cuando abrimos el adjunto (con Wordpad, Excel,...) todos los caracteres alemanes umlaut se han perdido. El problema es que al transferir el contenido del Paquete de Correo a un archivo, este archivo está codificado en UTF-8.

¿Alguien puede darnos una pista de cómo convertir la codificación del archivo adjunto de UTF-8 a ISO-8859-1 (Latin-1)?

Actualmente hemos configurado los siguientes parámetros en la página del módulo:

Secuencia de trabajo

1. localejbs/AF_Modules/MessageTransformBean      Local Enterprise Bean      XML2Plain
2. localejbs/sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean       Local Enterprise Bean      mail

Configuración del módulo

XML2Plain     Transform.ContentDisposition     attachment;filename="ABC.csv"
XML2Plain     Transform.ContentType      text/plain;charset=latin-1
XML2Plain     Transform.ContentDescription      "ABC"

Esperamos recibir algo de ayuda...

Saludos,

Lars

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

¿Estás seguro de que el contenido en tu ejemplo es UTF-(? ¿Cuál es la fuente para esto? ¿Cómo lo mapeas?

Probé con la fuente ISO-8859-1 y UTF-8, así como también con el destino ISO-8859-1 y UTF-8, y todo funcionó bien.

¿Qué SP utilizas?

Stefan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Stefan,

Gracias por tu respuesta... He cambiado el XML, pero no hay cambio en la codificación del archivo adjunto. Todavía es UTF-8.

El Payload de nuestro Mensaje, que puedes ver en el Monitoreo de XI (Transacción SXMB_MONI), tiene la siguiente estructura:

<?xml version="1.0" encoding="UTF-8" ?> 
<ns0:Mail xmlns:ns0="http://sap.com/xi/XI/Mail/30">
  <Subject>Mensaje de prueba</Subject> 
  <From>lars.ottawa@xyz.de</From> 
  <To>lars.ottawa@xyz.DE</To> 
  <Content_Type>text/plain;charset="ISO-8859-1"</Content_Type> 
  <Content>4264673;DE;33334;Bartholomäusweg 26;Gütersloh;Lars;Ottawa;99.9;1;1;;129717</Content> 
</ns0:Mail>

Cuando intentamos abrir el archivo adjunto (con un editor) obtenemos la siguiente cadena...

4264673;DE;33334;Bartholomäusweg 26;Gütersloh;Lars;Ottawa;99.9;1;1;;129717

Parece que el atributo Content Type no tiene efecto. ¿Podría ser posible?

Saludos,

Lars

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Al utilizar el paquete de correo, debes proporcionar la información del tipo de contenido en la etiqueta Content_Type.

Por lo tanto, debes agregar

<Content_Type>text/plain;charset="ISO-8859-1"</Content_Type>

al XML.

La entrada Transform.ContentType de la configuración del módulo se ignora cuando se utiliza el Paquete de Correo.

Espero que eso ayude

Stefan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi,

Hi

We handled the similar requirement in our project.

To convert the target file encoding UTF-8 to ISO-8859-1 . For this, I have used XSLT mapping by changing the output encoding as shown in the code.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="urn:abc.com:pi:ab:cd:FileToMail:Mail">
<xsl:variable name="vfileName" select="/a:MT_Mail/FileName"/>
<xsl:output method="text" indent="yes" encoding="iso-8859-1" media-type="TYP"/>

also set the charset value to ISO-8859-1 as shown in the XSLT mapping


                 <xsl:text>----mime-boundary
Content-Type: text/html; charset="ISO-8859-1"
Content-Disposition: inline

In Adapter module, add XMLAnonymizerBean

Link: http://help.sap.com/saphelp_nwpi71/helpdata/en/2e/bf37423cf7ab04e10000000a1550b0/frameset.htm

Hope this will resolve your issue.

Regards,

Divya

Edited by: Divya_10 on Jun 14, 2011 10:20 AM

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?