以前都没有注意这个问题,因为JAXB在编组XML文件的时候会将编码设置为默认值--UTF-8,我将编组好的XML文件在输出流中用toString("UTF-8")再编一次码就不会出现乱码了。
可是今天我将生成的XML文件直接在IE中浏览就读不出来了,中文不能识别,IE解析不了。怎么办呢?
在编组XML文件的时候用m.setProperty(marshaller.JAXB_ENCODING, "GB2312")(其中的m为Marshaller对象)进行编码,这样生成的XML文件就是以''GB2312"编码了:<?xml version="1.0" encoding="GB2312" standalone="yes" ?> ...... 但是如果在输出流中还是用toString("UTF-8")编码依旧会出现乱码,可以不用编码,直接toString();
对于这几种编码方式,还是不太理解,得好好研究一下!