Avalados por :

Como converter a codificação de um arquivo anexado de UTF-8 para ISO-8859-1 (Latin-1) - Guia passo a passo

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

Olá,

Estamos enfrentando um problema com o adaptador de e-mail...

Estamos tentando enviar um e-mail do XI para alguns provedores de serviços. Os dados de saída são armazenados em uma estrutura XML. Esta estrutura segue as convenções do formato do Pacote de Correio, utilizado para a geração dinâmica de e-mails. O conteúdo desta estrutura de Pacote de Correio é uma sequência separada por ponto e vírgula, que deve ser anexada como um arquivo CSV ao e-mail de saída. Até aqui tudo funciona bem. Recebemos o e-mail com o anexo do sistema, enviamos para um servidor SMTP e transferimos para um endereço de e-mail previamente definido.

No entanto, ao abrir o anexo (com Wordpad, Excel, ...) todos os caracteres alemães com trema foram perdidos. O problema está na transferência do conteúdo do Pacote de Correio para um arquivo, onde este arquivo é codificado em UTF-8.

Alguém poderia nos dar uma dica de como converter a codificação do anexo de UTF-8 para ISO-8859-1 (Latin-1)?

Atualmente configuramos os seguintes parâmetros na página do módulo:

Sequência de trabalho

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

Configuração do módulo

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

Esperamos receber alguma ajuda...

Saudações,

Lars

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

4 Respuestas

0
Cargando...

Você tem certeza de que o conteúdo em seu exemplo está em UTF-8? Qual é a fonte para isso? Como você faz o mapeamento?

Eu tentei com a fonte ISO-8859-1 e UTF-8, bem como o destino ISO-8859-1 e UTF-8, e tudo funcionou bem.

Qual SP você está usando?

Stefan

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

Olá Stefan,

Obrigado pela sua resposta... Alterei o XML, mas a codificação do arquivo anexo não mudou. Ainda está em UTF-8.

O Payload da nossa Mensagem, que você pode ver no Monitoramento do XI (Transação SXMB_MONI), tem a seguinte estrutura:

<?xml version="1.0" encoding="UTF-8" ?> 
<ns0:Mail xmlns:ns0="http://sap.com/xi/XI/Mail/30">
  <Subject>Mensagem de teste</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>

Quando tentamos abrir o arquivo anexo (com um editor) obtemos a seguinte cadeia...

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

Parece que o atributo Content Type não tem efeito. Poderia ser possível?

Saudações,

Lars

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

Ao utilizar o pacote de correio, você deve fornecer as informações do tipo de conteúdo na tag Content_Type.

Portanto, você deve adicionar

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

ao XML.

A entrada Transform.ContentType da configuração do módulo é ignorada ao usar o Pacote de Correio.

Espero que isso ajude

Stefan

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

Olá,

Nós lidamos com um requisito semelhante em nosso projeto.

Para converter o arquivo alvo codificação UTF-8 para ISO-8859-1 . Para isso, usei o mapeamento XSLT alterando a codificação de saída conforme mostrado no código.

<?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"/>

também defina o valor do conjunto de caracteres como ISO-8859-1 conforme mostrado no mapeamento XSLT


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

No módulo do Adaptador, adicione XMLAnonymizerBean

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

Espero que isso resolva seu problema.

Saudações,

Divya

Editado por: Divya_10 em 14 de junho de 2011, às 10h20

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?