我正在尝试将以下 utf-8 编码的 XML 发送到使用 Java 中的 JAX-RS 实现的 rest api。
XML 数据:
<?xml version="1.0" encoding="UTF-8"?>
<incomingData><Text>καλημέρα</Text></incomingData>
然后我尝试使用以下 REST API 调用解析数据:
@PUT()
@Produces(MediaType.TEXT_XML)
@Consumes(MediaType.TEXT_XML)
public void print(@QueryParam("printerID") int printerID,
InputStream requestBodyStream) {
IncomingData StudentData = null;
try {
JAXBContext jaxbContext =
JAXBContext.newInstance(IncomingData.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
StudentData = (IncomingData) jaxbUnmarshaller.unmarshal(requestBodyStream);
} catch (JAXBException e) {
e.printStackTrace();
}
try {
System.out.println(new String(StudentData.Text.getBytes(), "UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
为了轻松解析 XML 内容,我还使用了这个 JAXB 注释类:
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class IncomingData {
@XmlElement(name = "Text")
String Text = new String();
}
但是,当我将其内容打印为 UTF-8 编码字符串时, Text
XML 标记的内容仍然显示。?????
我该如何解决这个问题?