Fórum Erro de caractere inválido #377398

11/05/2010

0

Olá,

XML  + soap  retorno erro de caractere inválido, como fazer para configurar
o Delphi 2010 para não dar mais esse erro.

o arquivo retorno com o codigo UTF-8.

Obrigado.
Henrique Rocha

Henrique Rocha

Responder

Posts

11/05/2010

Wesley Yamazack

Olá amigo,

  No delphi temos algumas funções, na unit System,  para interpretar o unicode, veja esta por exemplo :

 Caption :=  UTF8ToString(ClientDataSet1.FieldByName('MSG').AsAnsiString);

  Este erro acontece quando você esta lendo dados do webservice ? Veja um exemplo a palavra no webservice é cação e na hora de ler fica CA��O , seria isso ?

Veja se isso irá lhe ajudar.


Att,


Wesley Y
Responder

Gostei + 0

12/05/2010

Henrique Rocha


Bom dia!

Não consigo manipular strings diretamente, porque apenas recebo as informações
diretamente do retorno do HTTPRIO, então teria um aforma de tudo que recebe no retorno
retorno UTF-8, a onde eu poderia colocar uma função parecida com a do exemplo que você
mandou?


function GetMacMensageria(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): MacMensageria;
const
  defWSDL = 'XXXXacMensageria.wsdl';
  defURL  = 'https://XXX.XX.X.XXX:XXXX/Mensageria';
  defSvc  = 'XXXXMensageria';
  defPrt  = 'MacMensageriaSOAP';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as MacMensageria);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;

Responder

Gostei + 0

12/05/2010

Wesley Yamazack

Olá amigo,
  Este erro acontece em que momento ? Teria como mandar printscreen da tela ?
Este Objeto MacMensageria, ele tem uma estrutura certo ? E nele que você ve o erro de cacateres inválidos seria isso ?

Att,

Wesley Y
Responder

Gostei + 0

13/05/2010

Henrique Rocha

Bom dia!

Não, esse erro ocorre em memória ou seja no retorno do soap, não sei como explicar, mas segue o xml
de exemplo do erro recorte e crie um arquivo com extensão xml, e tente ler no IE ou no Firefox pois eles dão o mesmo erro que no delphi, só que no delphi não tenhom  acesso a esse xml.

Será algo no sistema operacional alguma configuracao de pagina?

Ve se consegue me ajudar... Obrigado



<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">
   <NS1:Body>
      <NS2:consultarInformacoesCobrancaResponse xmlns:NS2="http://www.XXXX.com.br/XXXXMacMensageria/">
         <dadosCliente>
            <indicadorFuncionarioXXXX>N</indicadorFuncionarioXXXX>
            <indicadorBloqueioJudicial>N</indicadorBloqueioJudicial>
            <indicadorGrupoEconomico>N</indicadorGrupoEconomico>
            <indicadorGradVencimento>N</indicadorGradVencimento>
         </dadosCliente>
         <dadosContrato>
            <nrPagina>1</nrPagina>
            <indicadorUltimaPagina>S</indicadorUltimaPagina>
            <contratos>
               <siglaAplicativo>AUF</siglaAplicativo>
               <nrContrato>40120310392</nrContrato>
               <qtdeDiasAtraso>214</qtdeDiasAtraso>
               <bduUnidadeOperadora>401218</bduUnidadeOperadora>
               <dataVencimento>2013-01-25</dataVencimento>
               <codigoProduto>1030504001</codigoProduto>
               <sitCobranca>1</sitCobranca>
               <saldoAtualizado>61190.29</saldoAtualizado>
               <saldoNegociavel>0.00</saldoNegociavel>
               <saldoNaoNegociavel>0.00</saldoNaoNegociavel>
               <valorLimiteCredito>0.00</valorLimiteCredito>
               <dataVencimentoLimiteCredito>1900-01-01</dataVencimentoLimiteCredito>
               <qtdeParcelasEmAtraso>5</qtdeParcelasEmAtraso>
               <qtdeParcelasPagas>21</qtdeParcelasPagas>
               <qtdeParcelasAVencer>34</qtdeParcelasAVencer>
               <nomeAssessoriaCyber>XXXX ASSESSORIA E CONSULTORIA EMPRESA</nomeAssessoriaCyber>
               <dddAssessoriaCyber>11</dddAssessoriaCyber>
               <telAssessoriaCyber>32937005</telAssessoriaCyber>
               <nomeCredenciadoJsg/>
               <dddCredenciadoJsg>0</dddCredenciadoJsg>
               <telCredenciadoJsg>0</telCredenciadoJsg>
               <indicadorElegibilidadeMAC>S</indicadorElegibilidadeMAC>
               <indicadorAcordoAndamento>N</indicadorAcordoAndamento>
               <parcelas>
                  <nossoNumero>87730645390</nossoNumero>
                  <dataVencimento>2009-09-25</dataVencimento>
                  <valorOrigem>1906.08</valorOrigem>
                  <valorAtualizado>1991.99</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87730645404</nossoNumero>
                  <dataVencimento>2009-10-25</dataVencimento>
                  <valorOrigem>1906.08</valorOrigem>
                  <valorAtualizado>1985.34</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87730645439</nossoNumero>
                  <dataVencimento>2010-01-25</dataVencimento>
                  <valorOrigem>1906.08</valorOrigem>
                  <valorAtualizado>1964.98</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87730645447</nossoNumero>
                  <dataVencimento>2010-02-25</dataVencimento>
                  <valorOrigem>1906.08</valorOrigem>
                  <valorAtualizado>1958.12</valorAtualizado>
               </parcelas>
            </contratos>
            <contratos>
               <siglaAplicativo>AUF</siglaAplicativo>
               <nrContrato>40130121428</nrContrato>
               <qtdeDiasAtraso>221</qtdeDiasAtraso>
               <bduUnidadeOperadora>401307</bduUnidadeOperadora>
               <dataVencimento>2011-08-18</dataVencimento>
               <codigoProduto>1030504001</codigoProduto>
               <sitCobranca>1</sitCobranca>
               <saldoAtualizado>24150.70</saldoAtualizado>
               <saldoNegociavel>0.00</saldoNegociavel>
               <saldoNaoNegociavel>0.00</saldoNaoNegociavel>
               <valorLimiteCredito>0.00</valorLimiteCredito>
               <dataVencimentoLimiteCredito>1900-01-01</dataVencimentoLimiteCredito>
               <qtdeParcelasEmAtraso>4</qtdeParcelasEmAtraso>
               <qtdeParcelasPagas>40</qtdeParcelasPagas>
               <qtdeParcelasAVencer>16</qtdeParcelasAVencer>
               <nomeAssessoriaCyber>PORTARI ASSESSORIA E CONSULTORIA EMPRESA</nomeAssessoriaCyber>
               <dddAssessoriaCyber>11</dddAssessoriaCyber>
               <telAssessoriaCyber>XXXXXX</telAssessoriaCyber>
               <nomeCredenciadoJsg>XXXX - SÃO PAULO</nomeCredenciadoJsg>
               <dddCredenciadoJsg>0</dddCredenciadoJsg>
               <telCredenciadoJsg>0</telCredenciadoJsg>
               <indicadorElegibilidadeMAC>S</indicadorElegibilidadeMAC>
               <indicadorAcordoAndamento>N</indicadorAcordoAndamento>
               <parcelas>
                  <nossoNumero>87354773099</nossoNumero>
                  <dataVencimento>2009-09-18</dataVencimento>
                  <valorOrigem>1320.83</valorOrigem>
                  <valorAtualizado>1381.43</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87354773102</nossoNumero>
                  <dataVencimento>2009-10-18</dataVencimento>
                  <valorOrigem>1320.83</valorOrigem>
                  <valorAtualizado>1376.83</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87354773153</nossoNumero>
                  <dataVencimento>2010-03-18</dataVencimento>
                  <valorOrigem>1320.83</valorOrigem>
                  <valorAtualizado>1353.66</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>87354773161</nossoNumero>
                  <dataVencimento>2010-04-18</dataVencimento>
                  <valorOrigem>1320.83</valorOrigem>
                  <valorAtualizado>1348.92</valorAtualizado>
               </parcelas>
            </contratos>
            <contratos>
               <siglaAplicativo>CAR</siglaAplicativo>
               <nrContrato>4391428028573006</nrContrato>
               <qtdeDiasAtraso>241</qtdeDiasAtraso>
               <bduUnidadeOperadora>423122</bduUnidadeOperadora>
               <dataVencimento>2001-01-01</dataVencimento>
               <codigoProduto>9020703002</codigoProduto>
               <sitCobranca>0</sitCobranca>
               <saldoAtualizado>1979.00</saldoAtualizado>
               <saldoNegociavel>0.00</saldoNegociavel>
               <saldoNaoNegociavel>0.00</saldoNaoNegociavel>
               <valorLimiteCredito>0.00</valorLimiteCredito>
               <dataVencimentoLimiteCredito>1900-01-01</dataVencimentoLimiteCredito>
               <qtdeParcelasEmAtraso>1</qtdeParcelasEmAtraso>
               <qtdeParcelasPagas>0</qtdeParcelasPagas>
               <qtdeParcelasAVencer>0</qtdeParcelasAVencer>
               <nomeAssessoriaCyber>ZANC SERVIyOS DE COBRANyA E TELEMARKETIN</nomeAssessoriaCyber>
               <dddAssessoriaCyber>11</dddAssessoriaCyber>
               <telAssessoriaCyber>33343463</telAssessoriaCyber>
               <nomeCredenciadoJsg/>
               <dddCredenciadoJsg>0</dddCredenciadoJsg>
               <telCredenciadoJsg>0</telCredenciadoJsg>
               <indicadorElegibilidadeMAC>S</indicadorElegibilidadeMAC>
               <indicadorAcordoAndamento>N</indicadorAcordoAndamento>
            </contratos>
         </dadosContrato>
         <mensagemRetorno>
            <returnCode>0</returnCode>
            <reasonCode>0</reasonCode>
            <mensagem>OPERACAO REALIZADA COM SUCESSO</mensagem>
         </mensagemRetorno>
      </NS2:consultarInformacoesCobrancaResponse>
   </NS1:Body>
</NS1:Envelope>



Henrique
Responder

Gostei + 0

13/05/2010

Wesley Yamazack

Olá amigo,

Seguinte, olhando de cara já vi que seu XML esta sem cabeçalho, ao abrir no navegador Firefox o mesmo funciona, porém no IE da o erro :


 Este é o erro certo ?


Veja agora ao adicionar na primeira linha do seu XML, como fica o resultado

<?xml version="1.0" encoding="ISO-8859-1"?>
<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">
   <NS1:Body>
      <NS2:consultarInformacoesCobrancaResponse xmlns:NS2="http://www.XXXX.com.br/XXXXMacMensageria/">
         <dadosCliente>
            <indicadorFuncionarioXXXX>N</indicadorFuncionarioXXXX>
            <indicadorBloqueioJudicial>N</indicadorBloqueioJudicial>
            <indicadorGrupoEconomico>N</indicadorGrupoEconomico>
            <indicadorGradVencimento>N</indicadorGradVencimento>
         </dadosCliente>
         <dadosContrato>
            <nrPagina>1</nrPagina>
            <indicadorUltimaPagina>S</indicadorUltimaPagina>
            <contratos>
...
...
...
...
...


Veja se irá funcionar,

Um abraço

Wesley Y
Responder

Gostei + 0

13/05/2010

Henrique Rocha

Boa tarde!


Conforme disse esse XML vem atraves do sistema SOAP do qual eu não manipulo o XML diretamente,
porem o XML que ti mandei tem algum caracter invalido, veja outro XML sem o cabeçalho e funciona perfeitamente:


<NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/">
   <NS1:Body>
      <NS2:consultarInformacoesCobrancaResponse xmlns:NS2="http://www.XXXX.com.br/XXXXMacMensageria/">
         <dadosCliente>
            <indicadorFuncionarioXXXX>N</indicadorFuncionarioXXXX>
            <indicadorBloqueioJudicial>N</indicadorBloqueioJudicial>
            <indicadorGrupoEconomico>N</indicadorGrupoEconomico>
            <indicadorGradVencimento>N</indicadorGradVencimento>
         </dadosCliente>
         <dadosContrato>
            <nrPagina>1</nrPagina>
            <indicadorUltimaPagina>S</indicadorUltimaPagina>
            <contratos>
               <siglaAplicativo>FNB</siglaAplicativo>
               <nrContrato>31880365308</nrContrato>
               <qtdeDiasAtraso>93</qtdeDiasAtraso>
               <bduUnidadeOperadora>318809</bduUnidadeOperadora>
               <dataVencimento>2012-09-07</dataVencimento>
               <codigoProduto>1030504001</codigoProduto>
               <sitCobranca>1</sitCobranca>
               <saldoAtualizado>3001.06</saldoAtualizado>
               <saldoNegociavel>0.00</saldoNegociavel>
               <saldoNaoNegociavel>0.00</saldoNaoNegociavel>
               <valorLimiteCredito>0.00</valorLimiteCredito>
               <dataVencimentoLimiteCredito>1900-01-01</dataVencimentoLimiteCredito>
               <qtdeParcelasEmAtraso>4</qtdeParcelasEmAtraso>
               <qtdeParcelasPagas>28</qtdeParcelasPagas>
               <qtdeParcelasAVencer>28</qtdeParcelasAVencer>
               <nomeAssessoriaCyber>XXXX ASSESSORIA E CONSULTORIA EMPRESA</nomeAssessoriaCyber>
               <dddAssessoriaCyber>11</dddAssessoriaCyber>
               <telAssessoriaCyber>32937005</telAssessoriaCyber>
               <nomeCredenciadoJsg/>
               <dddCredenciadoJsg>0</dddCredenciadoJsg>
               <telCredenciadoJsg>0</telCredenciadoJsg>
               <indicadorElegibilidadeMAC>N</indicadorElegibilidadeMAC>
               <indicadorAcordoAndamento>S</indicadorAcordoAndamento>
               <parcelas>
                  <nossoNumero>0</nossoNumero>
                  <dataVencimento>2010-02-07</dataVencimento>
                  <valorOrigem>579.36</valorOrigem>
                  <valorAtualizado>908.95</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>0</nossoNumero>
                  <dataVencimento>2010-03-07</dataVencimento>
                  <valorOrigem>579.36</valorOrigem>
                  <valorAtualizado>798.43</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>0</nossoNumero>
                  <dataVencimento>2010-04-07</dataVencimento>
                  <valorOrigem>579.36</valorOrigem>
                  <valorAtualizado>691.69</valorAtualizado>
               </parcelas>
               <parcelas>
                  <nossoNumero>0</nossoNumero>
                  <dataVencimento>2010-05-07</dataVencimento>
                  <valorOrigem>579.36</valorOrigem>
                  <valorAtualizado>601.99</valorAtualizado>
               </parcelas>
            </contratos>
         </dadosContrato>
         <historicoAcordo>
            <numeroAcordo>4908698</numeroAcordo>
            <dataNegociacao>2010-05-10</dataNegociacao>
            <tipoOperacao>5</tipoOperacao>
            <situacaoOperacao>10</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2010-05-10</dataSituacao>
            <valorAcordo>0.00</valorAcordo>
            <qtdeParcelas>36</qtdeParcelas>
            <valorParcelas>557.50</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>15668.24</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <historicoAcordo>
            <numeroAcordo>4777213</numeroAcordo>
            <dataNegociacao>2010-04-08</dataNegociacao>
            <tipoOperacao>2</tipoOperacao>
            <situacaoOperacao>2</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2010-04-08</dataSituacao>
            <valorAcordo>684.09</valorAcordo>
            <qtdeParcelas>1</qtdeParcelas>
            <valorParcelas>684.09</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>684.09</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <historicoAcordo>
            <numeroAcordo>4688225</numeroAcordo>
            <dataNegociacao>2010-03-16</dataNegociacao>
            <tipoOperacao>2</tipoOperacao>
            <situacaoOperacao>2</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2010-03-16</dataSituacao>
            <valorAcordo>693.05</valorAcordo>
            <qtdeParcelas>1</qtdeParcelas>
            <valorParcelas>693.05</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>693.05</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <historicoAcordo>
            <numeroAcordo>4580736</numeroAcordo>
            <dataNegociacao>2010-02-17</dataNegociacao>
            <tipoOperacao>2</tipoOperacao>
            <situacaoOperacao>2</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2010-02-17</dataSituacao>
            <valorAcordo>691.93</valorAcordo>
            <qtdeParcelas>1</qtdeParcelas>
            <valorParcelas>691.93</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>691.93</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <historicoAcordo>
            <numeroAcordo>4418715</numeroAcordo>
            <dataNegociacao>2009-12-29</dataNegociacao>
            <tipoOperacao>2</tipoOperacao>
            <situacaoOperacao>2</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2009-12-29</dataSituacao>
            <valorAcordo>640.67</valorAcordo>
            <qtdeParcelas>1</qtdeParcelas>
            <valorParcelas>640.67</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>640.67</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <historicoAcordo>
            <numeroAcordo>4244006</numeroAcordo>
            <dataNegociacao>2009-11-16</dataNegociacao>
            <tipoOperacao>2</tipoOperacao>
            <situacaoOperacao>2</situacaoOperacao>
            <codigoDecisao>0</codigoDecisao>
            <dataSituacao>2009-11-17</dataSituacao>
            <valorAcordo>631.28</valorAcordo>
            <qtdeParcelas>1</qtdeParcelas>
            <valorParcelas>631.28</valorParcelas>
            <codigoOrigemAcordo>3</codigoOrigemAcordo>
            <acordosContrato>
               <siglaAplicacao>FNB</siglaAplicacao>
               <numeroContrato>31880365308</numeroContrato>
               <valorAcordo>631.28</valorAcordo>
            </acordosContrato>
         </historicoAcordo>
         <mensagemRetorno>
            <returnCode>0</returnCode>
            <reasonCode>0</reasonCode>
            <mensagem>OPERACAO REALIZADA COM SUCESSO</mensagem>
         </mensagemRetorno>
      </NS2:consultarInformacoesCobrancaResponse>
   </NS1:Body>
</NS1:Envelope>



Veja se pode ma ajudar...
no Delphi 2010 será que tem um parametro no qual eu confirguro para tudo
que for recebido use UTF-8?


Obrigado.

Henrique









Responder

Gostei + 0

13/05/2010

Wesley Yamazack

Olá Amigo,

  Seu problema pelo visto não esta no Delphi 2010, mas sim neste XML, pois você em nenhum momento tem o encoding do arquivo, este último XML funciona pois não tem nenhum carácter com acentuação, diferente do primeiro que tinha SÃO PAULO , experimente colocar em caracter com acento neste segundo XML, e você verá o mesmo erro, o problema pode estar na montagem do XML, de repente ele não aceita acentuação.
  Veja se isso é permitido realmente, pois a única explicação é a acentuação.

Att,

Wesley Y
Responder

Gostei + 0

14/05/2010

Henrique Rocha

bom dia!

Bem, isso quer disser que não tem solução?, pois já pedi ajuda para que fornece esse XML e até agora não obtive resposta, e é enviado pelo meu cliente que é uma organização Bancária e que não vai mudar o sistemas deles por causa de um acento.

teria outra solução?

obrigado.
Responder

Gostei + 0

14/05/2010

Wesley Yamazack

Olá amigo,   Infelizmente o WebService tem que lhe passar a informação de qual encoding ele foi desenvolvido, sem esta informação não tem como você conseguir interpretar estes acentos. Sendo assim fica complicado conseguir ler o XML desta forma. Não vejo outra solução para este problema, a não ser passar o encoding no cabeçalho do XML. Você já viu se realmente é permitido utilizar acentos neste XML? Não tem como você ver a documentação? Pois o XML é gerado pelo WebService e teria que ver com quem fez, qual é o encoding. Blz ?
  Um abraço   Wesley Y
Responder

Gostei + 0

14/05/2010

Henrique Rocha

OK, vou verificar mais uma vez...
Pode encerrar esse chamado.

henrique
Responder

Gostei + 0

14/05/2010

Wesley Yamazack

Ok amigo, verifique o mesmo estamos no aguardo.

Att,

Wesley Y
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar