Fórum Erro de caractere inválido #377398
11/05/2010
0
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
Curtir tópico
+ 0Posts
11/05/2010
Wesley Yamazack
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
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;
Gostei + 0
12/05/2010
Wesley Yamazack
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
13/05/2010
Henrique Rocha
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
13/05/2010
Wesley Yamazack
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
13/05/2010
Henrique Rocha
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
13/05/2010
Wesley Yamazack
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
14/05/2010
Henrique Rocha
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
14/05/2010
Wesley Yamazack
Um abraço Wesley Y
Gostei + 0
14/05/2010
Henrique Rocha
Pode encerrar esse chamado.
henrique
Gostei + 0
14/05/2010
Wesley Yamazack
Att,
Wesley Y
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)