Java XML中的错误字符?
我有以下问题: 对于一个项目,我创建了自己的logger,它生成一个带有自定义标记的xml文件。 问题在于,使用DOM和JAXB创建XML可能在编码方面存在问题。因为“内容”字段总是产生不正确的字符。 我已经尝试使用UTF-8/windows-1252更改编码。 我发现,实际上,我运行记录器的项目使用的是ISO-8859-1,我也尝试过替换它,但什么都没有。作为内容字段的输出,我总是得到这些不可理解的字符。 有人能帮我吗 我的代码:Java XML中的错误字符?,java,xml,encoding,jaxb,Java,Xml,Encoding,Jaxb,我有以下问题: 对于一个项目,我创建了自己的logger,它生成一个带有自定义标记的xml文件。 问题在于,使用DOM和JAXB创建XML可能在编码方面存在问题。因为“内容”字段总是产生不正确的字符。 我已经尝试使用UTF-8/windows-1252更改编码。 我发现,实际上,我运行记录器的项目使用的是ISO-8859-1,我也尝试过替换它,但什么都没有。作为内容字段的输出,我总是得到这些不可理解的字符。 有人能帮我吗 我的代码: if (OS.contains("Window
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(内容标记中存在问题):
sr pojo.SongRequestInfoÃÃÃcÃWCë
接受建议
jade.util.leap.ArrayList$1@445c4a59
1583849551513
我同意@VCR。输出XML很可能是一个正确编码的UTF-8XML文档,它看起来很奇怪,因为您使用的软件不知道如何显示UTF-8
以
开头的字符对的普遍存在表明,当您使用认为显示iso-8859-1的软件显示UTF-8数据时会发生什么。con
中有什么?它是什么类型的?它是如何定义的?谁来填?请显示相关代码。看起来XML文件是正确的,您查看输出的方法没有识别出输出是UTF-8.con和所有其他字符串。我使用atom我必须做什么,才能看到它正确吗?我已经试过用UTF-8编码
<?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>