Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNCMs - Caractere especial ( Descrição )


Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 299 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado
  Em 12/08/2024 at 19:00, Juliomar Marchetti disse:

até rodei e abri o exemplo aqui e vejam

image.png

dúvida estão com mais de um delphi no mesmo windows

Expandir  

Eu vi aqui que dentro do arquivo json esta certinho, so quando vem para o grid que fica assim

function TACBrNCMs.CarregarCache: String;
var
  wArq: String;
  wSL: TStringList;
  wJson: TACBrJSONObject;
  wDataCache: TDateTime;
  xData: string;
begin
  Clear;
  wJson := Nil;
  Result := EmptyStr;
  wArq := CacheArquivo;

  if (wArq = EmptyStr) or (not FileExists(wArq)) then
    Exit;

  try
    wSL := TStringList.Create;
    try

       wSL.LoadFromFile(wArq); //    aqui ja vem com os caracteres 

      wJson := CriarEValidarJson(wSL.Text);
            try
        xData := TratarCampoData(wJson.AsString['DataCache']);
                wDataCache := StringToDateTimeDef(xData, 0, 'dd/mm/yyyy');

                if (CacheDiasValidade > 0) and (DaysBetween(Now, wDataCache) > CacheDiasValidade) then
                begin
                    DeleteFile(wArq);
                    Exit;
                end;

                Result := wSL.Text;
            finally
                wJson.Free;
            end;
    finally
      wSL.Free;
    end;
  except
    DeleteFile(wArq);
  end;
end;
 

Dangelo Porto

  • Membros Pro
Postado

Tranquilo

Até dessa forma eu fiz mais não resolveu 

      // Tente ler com ISO-8859-1 (ou ajuste se precisar de outra codificação)
      wSL.Encoding := TEncoding.GetEncoding(28591); // ISO-8859-1
      wSL.LoadFromFile(wArq);
      // Se você tiver certeza da codificação correta, pode ajustar isso
      FileText := wSL.Text;
      // Se a leitura estiver errada, você pode tentar uma codificação diferente
      if ContainsStr(FileText, 'Caracteres estranhos') then
      begin
        // Tente uma codificação alternativa se necessário
        wSL.Encoding := TEncoding.GetEncoding(1252); // Windows-1252
        wSL.LoadFromFile(wArq);
        FileText := wSL.Text;
      end;
      // Converta para UTF-8 se necessário
      FileText := TEncoding.Convert(TEncoding.GetEncoding(28591), TEncoding.UTF8, TEncoding.GetEncoding(28591).GetBytes(FileText));
      wJson := CriarEValidarJson(FileText);
 

 

Dangelo Porto

  • Membros Pro
Postado
  Em 12/08/2024 at 20:14, Juliomar Marchetti disse:

na verdade ele tá em UTF-8.

se fosse só a versão mais nova  era só colocar

wSL.LoadFromFile(wArq, TEncoding.UTF8);

e tá resolvido

Mas temos que ter compatibilidade com os demais delphi

Expandir  

wSL.LoadFromFile(wArq, TEncoding.UTF8);

fiz assim tambem e nao deu certo

Dangelo Porto

  • Consultores
Postado

Bom dia!

Foi criada a #TK-5857 para análise do caso e parecer por parte da equipe de consultores.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
  Em 13/08/2024 at 13:27, BigWings disse:

Pelo que vi o problema foi após o refactoring que foi feito no ACBrHTTP.

image.png

O método RespIsUTF8 falha em detectar a codificação do arquivo.

Segue sugestão para correção.

ACBrNCMs.pas 22.45 kB · 2 downloads ACBrSocket.pas 44.58 kB · 2 downloads

Expandir  

Bom dia!

Contribuição enviada ao SVN na Rev-34874.

A todos que estiverem tendo problemas, por favor, queiram atualizar seus fontes, reinstalar o ACBr para realizar novos testes e reportar qualquer problema.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 299 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.