[英]Java XML encoding error
我已经在Java应用程序中实现了以下代码
//create string from xml tree
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
String xmlString = sw.toString().replaceAll("&[^;]+?;", ""); //Replace invalid HTML characters
//print xml
System.out.println("The XML is:\n\n" + xmlString);
OutputStream out = new FileOutputStream(dir.getSearchFileOutputDirectory() + "\\" + "output.xml");
//Write the XML to disk
out.write(xmlString.getBytes("ISO-8859-1"));
out.close();
现在,如果我在Netbeans中运行此文件,则XML文件可以在Chrome,IE和Firefox中完美呈现。 但是,一旦我清理并构建了代码,然后运行独立的JAR文件,浏览器就会报告该文件内的编码错误,并且无法呈现该文件。
关键是它们失败的行实际上不包含任何不常见的内容,仅包含我可以看到的标准ASCII字符。
谁能阐明为什么会这样? 我明天必须演示代码,现在我开始感到恐慌,为什么它突然做这个奇怪的事情……
任何投入将不胜感激。
谢谢
托尼
因为您只是在字符和字节级别上摆弄文件,而不是使用支持XML的工具,所以编码完全是您的责任。 您似乎没有试图确保用于写入输出流的编码与XML声明中出现的编码相同,因此这种失败似乎是不可避免的。
XML不是HTML。 那替换操作是一件坏事。 如果您的样式表说输出是HTML,那么它将起作用。 如果它说输出是XML,则不要尝试将其用作HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.