Problema para converter caracteres especiais quando aplicacão é executada por linha de comando

Boa tarde :slight_smile:

Queria tirar uma dúvida (que ta me atrasando na entrega do projeto…hehe)

Infelizmente, eu tenho que executar a aplicação pela linha de comando (DOS). Vou entregar o Jar para o pessoal integrar no ERP que tem aqui na empresa. Mas voltando À duvida que tenho, ou melhor, o problema é o seguinte.

Quando testo um exemplo de tratamento de caracteres pelo Netbeans, pressionando F6 para executar, consigo obter um resultado esperado: exemplo:

PEGAR ESTA FRASE: Teste inutilizacao de numeros da NFeç

CONVERTER PARA ESTA: Teste inutilizacao de numeros da NFec (alterou ‘ç’ por ‘c’)

Blza! a função ta modificando conforme esperado (trocando ‘ç’ por ‘c’)

Entretanto, quando executo o exemplo pela linha de comando (DOS): java -jar ExemploJavac.jar “D:\XML-ped-inu.xml”, o retorno volta sem sucesso:

“Teste inutilizacao de numeros da NFeAǼ”

Porque acontece isso? Será que é algum problema da codificação UTF-8? Sinceramente estou perdido neste problema. Alguem já teve este tipo de problema?

Vou postar o exemplo que fiz em java:


package exemplojavac;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.Normalizer;

public class Altera 
{
    public static String removeAcentos(String str) 
    {
        CharSequence cs = new StringBuilder(str == null ? "" : str);
        return Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
    }
    
    public static String lerXML(String fileXML) throws IOException 
    {
        String linha = "";
        StringBuilder xml = new StringBuilder();

        BufferedReader in = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileXML), "ISO-8859-1"));
        while ((linha = in.readLine()) != null) {
                xml.append(linha);
        }
        in.close();

        return xml.toString();
	
    }
}

package exemplojavac;

import java.io.FileWriter;
import java.io.IOException;

public class ExemploJavac 
{

    public static void main(String[] args) throws IOException 
    {
        String caminhoXML = args[0];
        //String caminhoXML = "D:\\XML-ped-inu.xml";
        String xmlEnvio = Altera.lerXML(caminhoXML);
        System.out.println(xmlEnvio);
        
        String xmlTratado = Altera.removeAcentos(xmlEnvio);
        
        System.out.println("\n\n\n\n");
        System.out.println(xmlTratado);
        
        FileWriter fw = new FileWriter("D:\\crt_normalizado.xml");
        fw.write(xmlTratado);
        fw.close();
    }
}

Qualquer sugestão ou dica agradeço muito. :smiley: