声明中使用ISO-8859-1的GB2312的Java XML编码

问题描述

我正在努力将创建XML代码从Java 1.4迁移到1.8。从旧的Java代码开始,它会将xml文件编码为GB2312,并且XML声明是此并带有正确的中文字符。但是当我使用Java 1.8时,整个XML变成了ISO-8859-1,而汉字变成了这样的威猛

      String values = "急需";
      byte[] encoded = values.getBytes("GB2312");
      Text env = doc.createTextNode(new String(encoded,"GB2312"));
      envelope.appendChild(env);
                
      doc.appendChild(messages);
      OutputFormat format  = new OutputFormat(doc,"ISO-8859-1",true);

      String path = "C:\\Test\\tes112.xml";
      fs = new FileOutputStream(path);
      
      
      XMLSerializer serial = new XMLSerializer(fs,format);          
      serial.serialize(doc);

这是旧代码的示例输出 XML File with ISO-8859-1 declaration and GB2312 Encoding

这是新代码的示例输出

XML File with ISO-8859-declaration and with encoding issue on GB2312

感谢您的帮助

解决方法

我设法通过将UNIX服务器中的JVM编码更改为ISO-8859-1来解决此问题

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...