我们使用Axis2生成Web服务响应,其中正文是从使用Windows 1252作为编码的系统生成的xml消息。我们的Axis2系统将使用utf8将这个主体包裹在soap消息中。然后将该消息发送给呼叫者。但是,调用者通过“1字节UTF-8的无效字节1”
拒绝该消息调用者系统建议我在响应的xml声明中取出encoding属性。我不知道怎么告诉轴不要把这个设置。谁知道怎么样?
答案 0 :(得分:1)
最好将Axis响应保持为UTF-8,而是尝试将有效负载的编码从1252更改为UTF-8。你是如何从有效载荷中组装SOAP响应的?
答案 1 :(得分:1)
原始XML的编码是否在XML标头中正确声明为Windows-1252?如果没有,它不是真正的XML而且系统被破坏了;如果它被声明并且Axis2只是将它重新标记为UTF-8而没有实际转换数据,则Axis2(非常严重)被破坏。
在任何一种情况下,修复损坏的系统。不要删除编码 - 这是你可以做的最糟糕的事情。如上所述:没有声明编码的XML不是XML,它的随机数据可能看起来像XML一样模糊。