我有一个JSP页面,它将每天运行,首先是:
使用以下方法从数据库字段中检索XML:
DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
ResultSet rs.getString(todayXML);
包含XML。
然后我想将它写入一个XML文件,我有以下代码:
currentXML = rs.getString("todayXML");
String docID = rs.getString("docID");
//File creation
String file = application.getRealPath("/") + "/xmls/"+docID + ".xml";
out.println("<p>Found document: " + docID + "</p>");
PrintWriter printout = new PrintWriter(file);
printout.print(currentXML);
printout.close();
这一切都在一个循环中运行,该循环通过ResultSet。
这一切都很好,除了XML被破坏: &#34;在文本内容中找到了无效字符&#34;是我从IE获得的读取错误。我知道这是因为XML包含外来字符。
我认为这与将XML存储在String(currentXML)中有关,该字符串对其进行编码而不保留字符。
我对Java和JSP一般都很新,所以快速的方法是理想的。 是逃避XML还是将其存储在更宽容的类型中。
任何想法都会受到赞赏。
谢谢。
答案 0 :(得分:0)
对于未来的程序员:
它相当啰嗦但我在使用PrintWriter写入文件时设法使用UTF8编码。
代码:
PrintWriter printout = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8")));
printout.print(currentXML);
printout.close();
修改强>
必须盲目;你可以用print writer编写的UTF8编码..
PrintWriter printout = new PrintWriter(file, "UTF8");