繁体   English   中英

Java XML编码错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM