Bom Dia, estou utilizando a classe fwrest() para acessar uma api, onde alguns campos existem acentuação, estes campos precisam ser importados da mesma maneira que esta na api. Fiz uma chamada nesta api e tomo como exemplo o retorno do campo nome_solucao onde seu conteúdo é "MENTORIA INDIVIDUAL: PDL – PROGRAMA DE DESENVOLVIMENTO DE LÍDERES E DE EQUIPE",
porém quando eu chamao a classe Fwrest() este campo é retornado desta maneira "nome_solucao":"MENTORIA INDIVIDUAL: PDL \u2013 PROGRAMA DE DESENVOLVIMENTO DE L\u00cdDERES E DE EQUIPE" , depois no meu fonte eu deserializo o retorno para dentro de um objeto, onde o conteudo do campo também vem "nome_solucao":"MENTORIA INDIVIDUAL: PDL \u2013 PROGRAMA DE DESENVOLVIMENTO DE L\u00cdDERES E DE EQUIPE". Tento usar o decodeutf8() neste campo e nao surte o efeito desejado fica assim
DecodeUTF8(oPropos:orcamento:NOME_SOLUCAO, "cp1252") "MENTORIA INDIVIDUAL: PDL – PROGRAMA DE DESENVOLVIMENTO DE L�?DERES E DE EQUIPE"
Verifique que ele decodificou o codigo \u2013 para -, porem o codigo \u00cd não foi transformado para Í e sim para �?.
Complementando a informacao, fiz o teste tambem da seguinte maneira, nao usei o FwDeserialize() usando JsonObject:New(), peguei o campo nome_solucao pelo oJson:getJsonTExt e Pelo oJson:GetJsonObject, e usei o decode tambem neles, o problema persite.
Será que existem codigos na tabela enconding cp1252 o qual o advpl nao reconhece??
Em anexo segue documento com os prints do codigo-fonte tambem da tabela cp1252 , da tela do retorno da api pelo soapui.
Peço orientação de como tratar estes campos corretamente, pois tem outros campos que o protheus faz corretamente. exemplo:
Campo sge_acao onde o conteúdo é "sge_acao":"Interven\u00e7\u00e3o - Consultoria Gest\u00e3o" e ao usar o decodeutf8 apos deserializar ele retorna corretamente para ser gravado no campo memo do protheus.
DecodeUTF8(oPropos:orcamento:SGE_ACAO, "cp1252") "Intervenção - Consultoria Gestão"
Bom dia Felipo, numa ferramenta como o postman, esta api demonstra desta mesma forma o retorno? Realmente acento propriamente dito não tenho problemas, está mais na forma como criam o json do que no decode dele, quando fizeram o encode devem ter utilizado esta maneira de tratar, se existir a possibilidade de chegar no fornecedor da api e pedir para ele tratar de outra forma, seria uma boa.
— Douglas Bichir 01 de Dec de 2020Alias faz um teste, dentro do decode,força um encodeutf8, tipo decodeutf8(encodeutf8(oPropos:orcamento...
— Douglas Bichir 01 de Dec de 2020