Erro de caractere inválido

11/05/2010

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

Curtidas 0

Respostas

Wesley Yamazack

Wesley Yamazack

11/05/2010

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
GOSTEI 0
Henrique Rocha

Henrique Rocha

11/05/2010


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;

GOSTEI 0
Wesley Yamazack

Wesley Yamazack

11/05/2010

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
GOSTEI 0
Henrique Rocha

Henrique Rocha

11/05/2010

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
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

11/05/2010

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
GOSTEI 0
Henrique Rocha

Henrique Rocha

11/05/2010

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









GOSTEI 0
Wesley Yamazack

Wesley Yamazack

11/05/2010

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
GOSTEI 0
Henrique Rocha

Henrique Rocha

11/05/2010

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.
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

11/05/2010

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
GOSTEI 0
Henrique Rocha

Henrique Rocha

11/05/2010

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

henrique
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

11/05/2010

Ok amigo, verifique o mesmo estamos no aguardo.

Att,

Wesley Y
GOSTEI 0
POSTAR