Por que a conversão de UTF-8 para ISO-8859-1 não é a mesma no Windows e no Linux?
Eu tenho o seguinte código para converter de UTF-8 para ISO-8859-1 em um arquivo jar e quando eu executo este jar no Windows eu recebo um resultado e no CentOS eu recebo outro. Alguém sabe por quê?
public static void main(String[] args) {
try {
String x = "Ä, ä, É, é, Ö, ö, Ü, ü, ß, «, »";
Charset utf8charset = Charset.forName("UTF-8");
Charset iso88591charset = Charset.forName("ISO-8859-1");
ByteBuffer inputBuffer = ByteBuffer.wrap(x.getBytes());
CharBuffer data = utf8charset.decode(inputBuffer);
ByteBuffer outputBuffer = iso88591charset.encode(data);
byte[] outputData = outputBuffer.array();
String z = new String(outputData);
System.out.println(z);
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
No Windows, o java -jar test.jar> test.txt cria um arquivo contendo: Ä, ä, É, é, Ö, ö, Ü, ü, ß, «,»
mas no CentOS eu recebo: ?, ä, ?, é, ?, ö, ?, ü, ?, «,»