【发布时间】:2014-10-10 11:58:46
【问题描述】:
我遇到了一个奇怪的问题。我有一个肥皂服务来存储用户数据,因为我正在调用一个服务并传递一个 XML 文档。问题是,当我从 Windows 尝试时,XML 正确显示了所有有效的UTF-8 字符
但我的服务器是 linux 服务器,当它尝试时,从对象生成的 XML 包含一些垃圾/垃圾字符,用于特殊的 UTF-8 字符。
我使用JAXB 进行XML 转换。
这是我使用的从 Object 到 String 的代码
String result = null;
JAXBContext jaxbContext = ContextFactoryManager.getInstance().createJAXBContext(SomeObject.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, JAXBUtils.JAXB_FORMATTED_OUTPUT);jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, JAXBUtils.JAXB_FRAGMENT);
jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, JAXBUtils.UTF8);
StringWriter writer = new StringWriter();
jaxbMarshaller.marshal(inputObject, writer);
result = writer.toString();
当我从本地服务器(从 Windows)运行此代码时,它工作得很好,但是当此代码在服务器(从 Linux)上运行时,它会将特殊字符(如 ö)转换为一些垃圾字符。
请告诉我有什么问题?
【问题讨论】: