Invalid byte 1 of 1-byte UTF-8 sequence(XML读取异常)

本文介绍使用XStream在JavaBean与XML间转换时遇到的字符集编码问题,并提供了一个使用org.w3c.dom解析XML文档并指定编码格式的示例解决方案。

XML读取异常Invalid byte 1 of 1-byte UTF-8 sequence.

用xstream进行JavaBean与xml之间的转换,无法设定字符集编码格式,会导致上述异常。

解决方法:org.w3c.dom(java dom)解析xml文档,在此仅列出write方法:

 1 public static void write(String xmlFile, String encoding)
 2             throws ParserConfigurationException, FileNotFoundException,
 3             TransformerException, UnsupportedEncodingException {
 4         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 5         DocumentBuilder builder = factory.newDocumentBuilder();
 6         Document document = builder.newDocument();
 7         Element root = document.createElement("sememewords");
 8         document.appendChild(root);
 9 
10         Element e = document.createElement("sememeword");
11         e.setTextContent("java dom Test");
12         root.appendChild(e);
13 
14         TransformerFactory tf = TransformerFactory.newInstance();
15         Transformer transformer = tf.newTransformer();
16         DOMSource source = new DOMSource(document);
17         transformer.setOutputProperty(OutputKeys.ENCODING, "utf8");
18         transformer.setOutputProperty(OutputKeys.INDENT, "yes");
19         PrintWriter pw = new PrintWriter(
20                 new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
21                         xmlFile), encoding)));
22         StreamResult result = new StreamResult(pw);
23         transformer.transform(source, result);
24         pw.flush();
25         pw.close();
26     }

 

转载于:https://www.cnblogs.com/MaNog/p/3816759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值