我在 jar 文件中将以下代码从 UTF-8 转换为 ISO-8859-1,当我在 Windows 中执行此 jar 时,我得到一个结果,而在 CentOS 中我得到另一个结果。可能有人知道为什么吗?
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());
}
}
在 Windows 中,java -jar test.jar > test.txt 创建一个文件,其中包含:Ä, ä, É, é, Ö, ö, Ü, ü, ß, «, »
但在 CentOS 中我得到:�?, ä, �?, é, �?, ö, �?, ü, �?, «, »