Boa tarde
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.