从JSP页面将XML写入文件。维护XML的编码(非英语)

时间:2016-02-11 09:15:12

标签: java xml jsp scriptlet

我有一个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还是将其存储在更宽容的类型中。

任何想法都会受到赞赏。

谢谢。

1 个答案:

答案 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");