java - org.xml.sax.SAXParseException; 1 字节 UTF-8 序列的字节 1 无效

标签 java struts1

尝试此代码时出现错误 错误日志就行了

docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

代码:

public static Object simpleDeserFromXml(InputStream in) {
    DocumentBuilder docBuilder;
    try {
        docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document document = docBuilder.parse(in);

        Element root = document.getDocumentElement();
        Element elemBean = null;
        Map<String, Class<?>> clsIdMap = new HashMap<String, Class<?>>();
        for (Node node = root.getFirstChild(); node != null; node = node.getNextSibling()) {
            if (node instanceof Element) {
                Element elem = (Element) node;
                if ("b".equalsIgnoreCase(elem.getTagName())) {
                    elemBean = elem;
                } else if ("c".equals(elem.getTagName())) {
                    try {
                        String clsName = elem.getAttribute("v");
                        Class<?> cls = null;
                        if ("boolean".equals(clsName)) {
                            cls = boolean.class;
                        } else if ("byte".equals(clsName)) {
                            cls = byte.class;
                        } else if ("short".equals(clsName)) {
                            cls = short.class;
                        } else if ("char".equals(clsName)) {
                            cls = char.class;
                        } else if ("int".equals(clsName)) {
                            cls = int.class;
                        } else if ("long".equals(clsName)) {
                            cls = long.class;
                        } else if ("float".equals(clsName)) {
                            cls = float.class;
                        } else if ("double".equals(clsName)) {
                            cls = double.class;
                        } else {
                            cls = Class.forName(clsName);
                        }
                        clsIdMap.put(elem.getAttribute("id"), cls);
                    } catch (ClassNotFoundException cnfe) {
                        // TODO must process class not found
                        logger.error("", cnfe);
                    }
                }
            }
        }

        if (elemBean != null) {
            return buildBeanFromXml(elemBean, clsIdMap);
        }
    } catch (ParserConfigurationException e) {
        logger.error("", e);
    } catch (SAXException e) {
        logger.error("", e);
    } catch (IOException e) {
        logger.error("", e);
    }

    return null;
}

我读了一些关于此的帖子并发现 this one但在这段代码中我无法理解什么是“cond”,所以我可以解决我的问题

InputSource is = new InputSource(new ByteArrayInputStream(cond.getBytes()));

这是我针对此问题的错误日志:

[Fatal Error] :3293:36: Invalid byte 1 of 1-byte UTF-8 sequence.
[http-nio-8080-exec-3] ERROR - 18 Jul 2018 15:21:50,721:com.integrosys.base.hs.techinfra.model.CasCompareUtil -
org.xml.sax.SAXParseException; lineNumber: 3293; columnNumber: 36; Invalid byte 1 of 1-byte UTF-8 sequence.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
        at com.integrosys.base.hs.techinfra.model.CasCompareUtil.simpleDeserFromXml(CasCompareUtil.java:1217)

大家能帮帮我吗,谢谢!

最佳答案

哦,我找到了解决这个问题的方法 像这样

Reader reader = new InputStreamReader(in,"UTF-8");
InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");

docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = docBuilder.parse(is);

有需要的小伙伴可以引用一下。谢谢大家!

关于java - org.xml.sax.SAXParseException; 1 字节 UTF-8 序列的字节 1 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51398088/

相关文章:

java - 从登录 URL 重定向

java - ArrayList 的 ArrayList 返回不正确的数据

java - Apache commons-validator 不验证 gmail

java - 线程 “main” 中的异常 java.util.IllegalFormatConversionException : g ! = java.lang.String

jsp lang参数在struts 1.1中自动存入cookie

struts2 - Struts 1 或 Struts 2。哪一个适合 Web 应用程序开发?

java - 更新表时出错 [未为参数 3 指定值]

java - Struts 没有使用我的 getter 方法

java - Rest 和 Struts 1.x 结合在一起

java - 如何在 Java Selenium 中禁用 Chrome 实验选项 Same-site-by-default-cookies?