Ir para conteúdo
  • Cadastre-se

dev botao

API Rest Delphi


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

Recommended Posts

Ola
Boa noite 
Pessoal 

Abri o rest debugger
Usei o verbo GET para esta URL - https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json

Observe que o retorno e com acentuação sem problemas com UTF-8
image.thumb.png.a721c323b89371da312992044fceba3f.png

 

Copio os componentes 

image.thumb.png.b3146ce5ce5bb3d1f8539cf2566cd7c1.png

 

Meu retorno vem com acentuação desconfigurada

image.png.f9cbc034549b3c46c5142b1b27cdd0ec.png

 

 

Usei o seguinte codigo simples
   RESTRequest1.Execute;
   Memo1.Text:=RESTResponse1.JSONValue.ToJSON;

Ja mechi em proprietades seitei utf-8 nada funciona

O que achei foi esta função 

function DecodeUnicodeEscapes(EscapedString: String): String;
var
  FoundPos: LongInt;
  HexCode: String;
  DecodedChars: String;
begin
  Result := EscapedString;
  FoundPos := Pos('\u', Result);
  while (FoundPos <> 0) and (FoundPos < Length(Result) - 4) do begin
    HexCode :=  Copy(Result, FoundPos + 2, 4);
    DecodedChars := WideChar(StrToInt('$' + HexCode));
    Result := AnsiReplaceStr(Result, '\u' + HexCode,
                             UTF8Encode(DecodedChars));
    FoundPos := Pos('\u', Result);
  end;
end;

 

E usei ela

   RESTRequest1.Execute;
   Memo1.Text:=DecodeUnicodeEscapes(RESTResponse1.JSONValue.ToJSON);

Até funcionou, só não se isto e o correto e porque no restDebuuger veio tão simples sem fazer nada adicional

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 01/08/2019 at 22:42, johnbh3 disse:

Ola
Boa noite 
Pessoal 

Abri o rest debugger
Usei o verbo GET para esta URL - https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json

Observe que o retorno e com acentuação sem problemas com UTF-8
image.thumb.png.a721c323b89371da312992044fceba3f.png

 

Copio os componentes 

image.thumb.png.b3146ce5ce5bb3d1f8539cf2566cd7c1.png

 

Meu retorno vem com acentuação desconfigurada

image.png.f9cbc034549b3c46c5142b1b27cdd0ec.png

 

 

Usei o seguinte codigo simples
   RESTRequest1.Execute;
   Memo1.Text:=RESTResponse1.JSONValue.ToJSON;

Ja mechi em proprietades seitei utf-8 nada funciona

O que achei foi esta função 

function DecodeUnicodeEscapes(EscapedString: String): String;
var
  FoundPos: LongInt;
  HexCode: String;
  DecodedChars: String;
begin
  Result := EscapedString;
  FoundPos := Pos('\u', Result);
  while (FoundPos <> 0) and (FoundPos < Length(Result) - 4) do begin
    HexCode :=  Copy(Result, FoundPos + 2, 4);
    DecodedChars := WideChar(StrToInt('$' + HexCode));
    Result := AnsiReplaceStr(Result, '\u' + HexCode,
                             UTF8Encode(DecodedChars));
    FoundPos := Pos('\u', Result);
  end;
end;

 

E usei ela

   RESTRequest1.Execute;
   Memo1.Text:=DecodeUnicodeEscapes(RESTResponse1.JSONValue.ToJSON);

Até funcionou, só não se isto e o correto e porque no restDebuuger veio tão simples sem fazer nada adicional

tente usar: Memo1.Text := RESTResponse1.JSONText;

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...