gpt4 book ai didi

java - Java XML 中的字符错误?

转载 作者:行者123 更新时间:2023-12-01 18:01:10 25 4
gpt4 key购买 nike

我有以下问题:对于一个项目,我创建了自己的记录器,它生成带有自定义标签的 xml 文件。问题是使用 DOM 和 JAXB 创建 XML 都可能在编码方面存在问题。由于“内容”字段总是产生不正确的字符。我已经尝试过使用 UTF-8/windows-1252 更改编码。我发现实际上我运行记录器的项目使用 ISO-8859-1 我也尝试替换它,但什么也没有。作为内容字段的输出,我总是得到这些难以理解的字符。谁能帮我吗?

我的代码:

        if (OS.contains("Window")) {

try {

fh = new FileHandler(userDir+s+logF+s+jade+s+nameAgent+"-receive(Logger Java).xml" );
logger.addHandler(fh);
XMLFormatter formatter = new XMLFormatter();
fh.setFormatter(formatter);
logger.info(" ");

}

catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


XmlCreator xmlcreator = new XmlCreator();
xmlcreator.setOntology(onto);
xmlcreator.setPerformative(perf);
xmlcreator.settimeStamp(ts);
xmlcreator.setProtocol(pro);
xmlcreator.setReceiver(rec);
xmlcreator.setContent(con);

try {

File file = new File("C:\\Users\\Francesco\\Desktop\\writereceiver.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(XmlCreator.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

jaxbMarshaller.marshal(xmlcreator, file);
jaxbMarshaller.marshal(xmlcreator, System.out);

} catch (JAXBException e) {
e.printStackTrace();
}

输出 XML(内容标签中的问题):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmlCreator>
<content>’ sr pojo.SongRequestInfoÃÃcÀWCë</content>
<performative>ACCEPT-PROPOSAL</performative>
<receiver>jade.util.leap.ArrayList$1@445c4a59</receiver>
<timeStamp>1583849551513</timeStamp>
</xmlCreator>

最佳答案

我同意@VCR。输出 XML 很可能是正确编码的 UTF-8 XML 文档,它看起来很奇怪,只是因为您使用某些不知道如何显示 UTF-8 的软件来查看它。

开头的字符对的普遍存在是当您使用自认为显示 iso-8859-1 的软件显示 UTF-8 数据时所发生情况的症状。

关于java - Java XML 中的字符错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60623276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com