相关疑难解决方法(0)

使用Java和UTF-8编码生成有效的XML

我正在使用JAXP生成和解析XML文档,从该文档从数据库加载一些字段.

用于序列化XML的代码:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("test");
root.setAttribute("version", text);
doc.appendChild(root);

DOMSource domSource = new DOMSource(doc);
TransformerFactory tFactory = TransformerFactory.newInstance();

FileWriter out = new FileWriter("test.xml");
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(domSource, new StreamResult(out)); 
Run Code Online (Sandbox Code Playgroud)

解析XML的代码:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("test.xml");
Run Code Online (Sandbox Code Playgroud)

我遇到以下异常:

[Fatal Error] test.xml:1:4: Invalid byte 1 of 1-byte UTF-8 sequence.
Exception in thread "main" org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
    at …
Run Code Online (Sandbox Code Playgroud)

java xml encoding utf-8

21
推荐指数
2
解决办法
7万
查看次数

标签 统计

encoding ×1

java ×1

utf-8 ×1

xml ×1