Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNCMs - Caractere especial ( Descrição )


Ver Solução Respondido por BigWings,

Recommended Posts

  • Membros Pro
Postado
6 horas atrás, SISBLU Software disse:

Bom dia, como posso importar a tabela com a descrição com acento correto?

 

image.thumb.png.8c87dde3a56cb2e139febf1784109235.png

Estou com o mesmo problema, meu Delphi e o 11

Dangelo Porto

  • Membros Pro
Postado
17 minutos atrás, 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

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
21 minutos atrás, 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

wSL.LoadFromFile(wArq, TEncoding.UTF8);

fiz assim tambem e nao deu certo

Dangelo Porto

  • Membros Pro
Postado
1 hora atrás, Juliomar Marchetti disse:

Dá sim. só exclui o arquivo de cache

Você fala de excluir o arquivo ACBrNCM.json que esta na pasta?

Dangelo Porto

  • Membros Pro
Postado
3 minutos atrás, Juliomar Marchetti disse:

Sim

Não deu certo, pois ele faz o download novamente e alimenta wSL.LoadFromFile(wArq, TEncoding.UTF8);

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 !!

  • Moderadores
  • Solution
Postado

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 ACBrSocket.pas

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Consultores
Postado
On 8/13/2024 at 10:27 AM, BigWings said:

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

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 !!

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.