Fórum Biblioteca lkJSON - Deserialização esta colocando (?) no lugar de acentos, como consertar isso? #533969
08/10/2015
0
Bom dia pessoal, fiz um método que faz comunicação com um web service rest e me devolve um json de clientes, consigo deserializar e salvar no banco normal, o problemas são os caracteres especiais como acentos que não esta sendo reconhecidos pelo biblioteca do LkJson.
O método esta +- assim:
No json o campo esta com acento normal, quando deserializa com o LkJson fica um '?' no lugar do caractere.
O método esta +- assim:
jl := TlkJSON.ParseText(jsonString) as TlkJSONlist;
if Assigned(jl) then
begin
for i := 0 to jl.Count-1 do
begin
ja := jl.Child[i] as TlkJSONobject;
produto := TProduto.Create;
produto.codigo := VarToStr(ja.Field['codigo'].Value);
produto.descricao := VarToStr(ja.Field['descricao'].Value);
produto.estMax := (ja.Field['estMax'].Value);
produto.precoVenda := ja.Field['precoVista'].Value;
produto.unidadeMedida := ja.Field['unidadeMedida'].Value;
produto.estMin := ja.Field['estMin'].Value;
produto.status := VarToStr(ja.Field['status'].Value);
produto.custoMedio := ja.Field['custoMedio'].Value;
produto.codAnp := VarToStr(ja.Field['codAnp'].Value);
produto.diasVencimento := (ja.Field['diasVencBalanca'].Value);
produto.codigoNcm := VarToStr(ja.Field['codigoNcm'].Value);
produto.tipoProduto := tipoProd.EnumTipoProd(VarToStr(ja.Field['tipoProduto'].Value));
produto.prodBalanca := VarToStr(ja.Field['prodBalanca'].Value);
...
No json o campo esta com acento normal, quando deserializa com o LkJson fica um '?' no lugar do caractere.
Danilo Pereira
Curtir tópico
+ 0
Responder
Posts
09/10/2015
Tone Costa.
experimente usar utf9decode para as variaveis.
Responder
Gostei + 0
09/10/2015
Danilo Pereira
Consegui resolver em parte alterando a linha:
para
porém agora os caracteres que tem acento estão vindo sem.
jl := TlkJSON.ParseText(jsonString) as TlkJSONlist;
para
jl := TlkJSON.ParseText(TEncoding.ASCII.GetString(TEncoding.ASCII.GetBytes(jsonString))) as TlkJSONlist;
porém agora os caracteres que tem acento estão vindo sem.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)