[英]encoding in Java StAX parser
我正在使用StAX来读取XML文件,但是对于像žćčšđ这样的字符有问题。 代码与SAX中的代码几乎相同,但我没有那样的问题。
这是xml文档的一部分
<?xml version = "1.0" encoding="UTF-8" ?>
<Autor>
<Id>1</Id>
<Meno>Jano Žiška</Meno>
<Email>dfdsfsfdsdf@gmail.com</Email>
<tel_cislo typ="mobil">0944564685</tel_cislo>
<plat>500</plat>
</Autor>
java的
public static void main(String[] args) {
try {
XMLInputFactory f = XMLInputFactory.newInstance();
XMLStreamReader r = f.createXMLStreamReader(new FileReader(SUBOR));
}
....
if (r.getLocalName().equals(ELEMENT_MENO) == true) {
String v = r.getElementText();
System.out.println("meno:\t\t\t " + v);
}
我怎样才能在java中指定编码? 谢谢
除非你有充分的理由 ,否则你应该始终使用带有XML(InputStream / OutputStream)的二进制流,而不是字符流(Reader / Writer)。 使用字符流可能会破坏xml(正如OP的原始代码所示)。
XMLStreamReader r = f.createXMLStreamReader(new FileInputStream( SUBOR ));
而不是使用FileReader,执行此操作:
XMLStreamReader r = f.createXMLStreamReader(
new InputStreamReader(
new FileInputStream( SUBOR ),
Charset.forName( "UTF8" ) ) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.