Usuário com melhor resposta
WebService consumido por Delphi 7

Pergunta
-
Boa noite pessoal... é o seguinte:
Eu faço envio de dados em forma de xml (usando sempre os parametros como string, pra facilitar) mas estou tendo problemas com caracteres com acento, do envio da aplicação delphi para aplicação .net (web services). Quando eu envio a palavra "Adão", por exemplo, chega "Ad??ao".
Alguem ja teve esse problema com acentos???
Respostas
-
Se não me falha a memória, no web.config, dentro do system.web, voce vai ter que incluir:
<globalization
requestEncoding=""
responseEncoding=""
/>E aí vai tefinir no encoding algo que suporte os acentos que você quer. Não tenho certeza se o Delphi hoje trabalha do mesmo jeito, imagino que sim.
Todas as Respostas
-
-
-
Se não me falha a memória, no web.config, dentro do system.web, voce vai ter que incluir:
<globalization
requestEncoding=""
responseEncoding=""
/>E aí vai tefinir no encoding algo que suporte os acentos que você quer. Não tenho certeza se o Delphi hoje trabalha do mesmo jeito, imagino que sim.
-
-
developermaster wrote: Boa noite pessoal... é o seguinte:
Eu faço envio de dados em forma de xml (usando sempre os parametros como string, pra facilitar) mas estou tendo problemas com caracteres com acento, do envio da aplicação delphi para aplicação .net (web services). Quando eu envio a palavra "Adão", por exemplo, chega "Ad??ao".
Alguem ja teve esse problema com acentos???
cara o seguinte depois de muita luta, briga, sufoco, finalmente achei uma solução. Que na verdade vai ser no delphi e não no web service(Asp.net).
O seguinte, tem que alterar o componente hattprio com as seguintes propriedades:
object HTTPRIO: THTTPRIO
OnAfterExecute = HTTPRIOAfterExecute
OnBeforeExecute = HTTPRIOBeforeExecute
URL = 'http://localhost:3972/WS_SysConsig/Service.asmx'
HTTPWebNode.Agent = 'Borland SOAP 1.2'
HTTPWebNode.UseUTF8InHeader = True
HTTPWebNode.InvokeOptions = [soIgnoreInvalidCerts, soAutoCheckAccessPointViaUDDI]
Converter.Options = []
Converter.Encoding = 'utf-8'
Left = 24
Top = 24
end -
Pegue esta informação no Help do Delphi 7 e me ajudou, pois estava com o mesmo problema.
Fiz um WS no delphi que é consumido por uma aplicação .NET, e o XML aparecia com a acentuação trocada por ?????
Tem que mudar o seguinte componente no seu WS em delphi:
HTTPSoapPascalInvoker1
mude:
encoding = ''
e ligue as opções: soUTF8EncodeXML e soUTF8InHeader em options.
veja abaixo a dica no help do delphi 7:
Note: Some Web Services (such as Apache or .NET) require transport level encoding rather than DOM level encoding. In such cases, it is possible that setting Encoding can cause problems because the Web Service converts characters at the transport level and then converts a second time because of the encoding attribute that Encoding adds to the XML representation. If a Web Service requires transport-level encoding and assumes UTF8, Encoding should be an empty string and the Options property should include soUTF8EncodeXML and soUTF8InHeader.
[]s
Eduardo