Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2626 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá a todos,

Estou lendo um arquivo de texto que hospedei em meu domínio, na verdade é um script SQL que executo em minha base local através de um componente ZSQLProcessor1. Para tal estou usando o tutorial do link abaixo:

http://blog.4each.com.br/blog/2015/06/11/delphi-ler-arquivo-texto-de-um-endereco-http/

O problema é que ao copiar o conteúdo para a variável S, as palavras acentuadas vem com caracteres estranhos.

Alguém pode me ajudar?

Desde já agradeço a atenção de todos

  • Membros Pro
Postado

Resolvi com a dica do tópico abaixo:

http://www.activedelphi.com.br/forum/viewtopic.php?t=76510&sid=3efd77063b033dd9e6ae386e0fa4d1fb

3 minutos atrás, Daniel Simoes disse:

Converta de UTF8 para ANSI ou UTF16 ( conforme a versão do seu Delphi)

Oi Daniel... Tudo bom?

Como é feita essa conversão?

Meu Delphi é 2010, qual seria a diferença entre as versões ao fazer essas conversões?

  • Fundadores
Postado

na ACBrUtil existem métodos para isso... veja:

function NativeStringToUTF8( AString : String ) : AnsiString;
function UTF8ToNativeString( AUTF8String : AnsiString ) : String;

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado
5 horas atrás, Daniel Simoes disse:

Converta de UTF8 para ANSI ou UTF16 ( conforme a versão do seu Delphi)

Obrigado Daniel... Mas você disse para eu usar as conversões acima de acordo com a versão do meu Delphi... Qual seria a diferença entre as versões de Delphi existentes?

  • Membros Pro
Postado

Daniel, a nível de estudo abri o fonte para entender essa diferenciação das versões.

function UTF8ToNativeString(AUTF8String: AnsiString): String;
begin
  {$IfDef FPC}
   Result := AUTF8String;  // FPC usa UTF8 de forma nativa
  {$Else}
   {$IfDef UNICODE}
    {$IfDef DELPHI12_UP}  // delphi 2009 em diante
     Result := UTF8ToString(AUTF8String);
    {$Else}
     Result := UTF8Decode(AUTF8String);
    {$EndIf}
   {$Else}
    Result := Utf8ToAnsi(AUTF8String) ;
   {$EndIf}
  {$EndIf}
end;

Veja se eu entendi o código direito.

1 - Se for FPC usa o próprio padrão UTF8, correto? O que seria FPC?

2 - Se não for FPC e for UNICODE, e pertencer ao Delphi 2009 em diante usa UTF8ToString, correto?

3 - Se não for FPC e for UNICODE, mas abaixo do Delphi 2009, usa UTF8Decode, correto?

4 - Se não for FPC e nem for UNICODE, usa UTF8ToAnsi, correto? Qual Delphi por exemplo entraria nesse quesito?

Desculpe estender o assunto, mas essa dúvida me deixou inquieto.

Desde já agradeço a sua atenção.

  • Fundadores
Postado

Sim.. é isso mesmo... mas observe que são diretivas de compilação... ou seja, em tempo de execução apenas uma das linhas será executada...

FPC = Free Pascal Compiler (Lazarus)

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 2626 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.