[RESOLVIDO] Erro em acentuações

Boa tarde pessoal,

tenho esse método porem o retorno json esta desconfigurando as acentuações, exemplo Uni¿o quando o correto é União.
Lembrando que a URL em questão esta trazendo corretamente.

Poderiam me auxiliar?

public final void importaEmpresas(){
    System.err.println("cheguei");
    JSONParser parser = new JSONParser();

    try {  
      
        String url = 
                "https://www.soc.com.br/WebSoc/exportadados?parametro={'empresa':'366177','codigo':'6618','chave':'bfa0c6c539903edd0b26','tipoSaida':'json'}";
             
        
        URL oracle = new URL(url); // URL to Parse
      
        URLConnection yc = oracle.openConnection();
        
        try (BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()))) {
            
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                
                JSONArray a = (JSONArray) parser.parse(inputLine);
                
                // Loop through each item
                for (Object o : a) {
                    JSONObject percorre = (JSONObject) o;
                                           
           	String CODIGO                  = (String) percorre.get("CODIGO");
            String APELIDO                 = (String) percorre.get("APELIDO(NOMEABREVIADO)");
            String RAZAOSOCIALINICIAL      = (String) percorre.get("RAZAOSOCIALINICIAL");
            String RAZAOSOCIAL             = (String) percorre.get("RAZAOSOCIAL");
            String ENDERECO	               = (String) percorre.get("ENDERECO");
            String NUMEROENDERECO	       = (String) percorre.get("NUMEROENDERECO");
            String COMPLEMENTOENDERECO     = (String) percorre.get("COMPLEMENTOENDERECO");
            String BAIRRO	               = (String) percorre.get("BAIRRO");
            String CIDADE	               = (String) percorre.get("CIDADE");
            String CEP	               = (String) percorre.get("CEP");
            String UF	               = (String) percorre.get("UF");
            String CNPJ	               = (String) percorre.get("CNPJ");
            String INSCRICAOESTADUAL       = (String) percorre.get("INSCRICAOESTADUAL");
            String INSCRICAOMUNICIPAL      = (String) percorre.get("INSCRICAOMUNICIPAL");
            String ATIVO	               = (String) percorre.get("ATIVO");
            String CODIGOCLIENTEINTEGRACAO = (String) percorre.get("CODIGOCLIENTEINTEGRACAO");
 
                         System.out.println("CODIGO : " + CODIGO + 
                                        " \n APELIDO: " + APELIDO +
                                        " \n RAZAOSOCIALINICIAL: "+RAZAOSOCIALINICIAL+
                                        " \n RAZAOSOCIAL: "+RAZAOSOCIAL+
                                        " \n ENDERECO: "+ENDERECO+
                                        " \n NUMEROENDERECO: "+NUMEROENDERECO+
                                        " \n COMPLEMENTOENDERECO: "+COMPLEMENTOENDERECO+
                                        " \n BAIRRO: "+BAIRRO+
                                        " \n CIDADE: "+CIDADE+
                                        " \n CEP: "+CEP+
                                        " \n UF: "+UF+
                                        " \n CNPJ: "+CNPJ+
                                        " \n INSCRICAOESTADUAL: "+INSCRICAOESTADUAL+
                                        " \n INSCRICAOMUNICIPAL: "+INSCRICAOMUNICIPAL+
                                        " \n ATIVO: "+ATIVO+
                                        " \n CODIGOCLIENTEINTEGRACAO: "+CODIGOCLIENTEINTEGRACAO
                         +"\n****************************************");
               }
     
            }
        }
    } catch (FileNotFoundException e) {
    } catch (IOException | ParseException e) {
    }   
}

Certo, onde vc verificou que o retorno está com os caracteres especiais bugados? no console?
O console realmente vai printar bugado. Acessa a url com um navegador pra ver se vem correto.

Via navegador vem correto.

via console esta trazendo errado, e tambem esta gravando no banco errado.

att

Rapaz, você deve ter que definir a codificação de caracteres que o seu InputStreamReader vai utilizar pra ler o seu JSON.

Tenta usar UTF-8 que é o mais provável.

BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "utf-8"));
1 curtida

Eldius, obrigado.

funcionou, porem com “Cp1252”

BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(),“Cp1252”))

OBRIGADO A TODOS.

RESOLVIDO