【问题标题】:Writing XML to file from JSP page. Maintaining encoding for XML (non-english language)从 JSP 页面将 XML 写入文件。维护 XML 的编码(非英语语言)
【发布时间】:2016-02-11 09:15:12
【问题描述】:

我有一个 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 的 while 循环中运行。

这一切都很好,除了 XML 被损坏: “在文本内容中发现无效字符”是我从 IE 得到的读取错误。我知道这是因为 XML 包含外来字符。

我认为这与将 XML 存储在字符串 (currentXML) 中有关,该字符串在不保留字符的情况下对其进行编码。

总的来说,我对 Java 和 JSP 还很陌生,所以快速的方法是理想的。 是转义 XML 还是将其存储在更宽容的类型中。

任何想法都将不胜感激。

谢谢。

【问题讨论】:

  • 什么类型的XML数据库字段?

标签: java xml jsp scriptlet


【解决方案1】:

对于未来的程序员:

它相当冗长,但我在使用 PrintWriter 写入文件时设法使用了 UTF8 编码。

代码:

PrintWriter printout = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8")));
      printout.print(currentXML);
      printout.close();

编辑:

一定会失明;您可以使用打印作者的 UTF8 对其进行编码..

PrintWriter printout = new PrintWriter(file, "UTF8");

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2011-06-20
    • 2018-11-08
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多