Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
charlo Aprendiz

Registrado: Quinta-Feira, 13 de Julho de 2006 Mensagens: 178
|
Enviada: Ter Out 09, 2012 12:41 pm Assunto: IdHTTP + Caracteres especiais (Resolvido) |
|
|
Boa tarde gente.
Estou com um pequeno problema, agradeço qualquer ajuda.
Eu uso o componente Indy IdHTTP em sua última versão e estou pegando informações de um site e me deparei com o seguinte problema. As palavras acentuadas o IdHTTP sempre mostra caracteres especiais tipo:
Û, Ú, Ù, Ũ, ç, Ç, í³ etc...
Gostaria de saber se tenho que configurar o componente IdHTTP para que me mostre corretamente os caracteres acentuados. Já tentei várias configurações de Charset, ContentType, Accept e nada. Já tentei UTF-8, UTF-16, ISO-8859-1, ContentType: 'text/html', etc.
Fiz testes com outros sites e funciona normal. Vi no código html deste site que está da seguinte forma:
Código: | http-equiv="Content-Type" content="text/html; charset=UTF-8" |
OBS.: Estou usando o comando get, passo pra stream e depois do stream passo a um memo.
Agradeço mais uma vez qualquer ajuda.
Charlo.
Editado pela última vez por charlo em Ter Out 09, 2012 5:51 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Ter Out 09, 2012 1:46 pm Assunto: |
|
|
utilize estas funções para fazer a codificação e a decodifcação:
Código: |
UTF8Encode();
UTF8Decode();
|
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
charlo Aprendiz

Registrado: Quinta-Feira, 13 de Julho de 2006 Mensagens: 178
|
Enviada: Ter Out 09, 2012 5:49 pm Assunto: |
|
|
Olá johnny, muito obrigado pela ajuda.
Realmente era isso. Abaixo deixo o código com a solução se caso mais alguém tenha o mesmo problema:
Código: |
var
PostDataStream : TStringStream;
WebPageContent : AnsiString;
begin
Memo1.Clear;
PostDataStream := TStringStream.Create('');
try
IdHTTP1.ConnectTimeout := 30000;
IdHTTP1.Get(url , PostDataStream);
WebPageContent := PostDataStream.DataString;
finally
PostDataStream.Free;
Memo1.Lines.Text := UTF8Decode(WebPageContent);
end;
end;
|
Essa foi a linha em que eu inseri a função que o johnny falou e deu certo.
Memo1.Lines.Text := UTF8Decode(WebPageContent);
OBS.: url é uma string pública.
Mais uma vez valeu pela força johnny.
Abraços,
Charlo. |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Ter Out 09, 2012 8:45 pm Assunto: |
|
|
Disponha amigo, estamos aqui mesmo é para ajudar.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
nathan.fsx Novato

Registrado: Quinta-Feira, 30 de Janeiro de 2014 Mensagens: 1
|
Enviada: Qui Jan 30, 2014 5:12 am Assunto: |
|
|
Olá amigos, hoje tive um problema parecido com este, porém estava importando um arquivo TXT para um MEMO e ocorria o mesmo problema.
Achei a solução e vou deixar aqui para se alguém precisar...
Grande abraço a todos!
Código: | Memo1.Lines.LoadFromFile('C:\arquivo.txt',TEncoding.UTF8); |
|
|
Voltar ao Topo |
|
 |
|