2014-10-10 40 views
0

我正面临一个奇怪的问题。我有一个soap服务来存储用户数据,因为我正在调用一个服务并传递一个XML文档。问题是,当我从Windows试试,XML正确使用所有有效UTF-8字符请求xml中的UTF-8编码在linux中的soap请求

显示,但我的服务器是Linux服务器,它尝试时,从对象生成的XML具有特殊的一些垃圾/垃圾字符UTF-8个字符。

我使用JAXB进行XML转换。

下面是它工作得很好,我从Object使用字符串

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 ),它会将特殊字符(如ö)转换为某些垃圾字符。

请让我知道什么是错的?

回答