0

我们使用 Axis2 生成 Web 服务响应,其主体是从使用 windows 1252 作为编码的系统生成的 xml 消息。我们的 Axis2 系统将使用 utf8 将这个主体包裹在一个肥皂消息中。然后将消息发送给呼叫者。但是,调用者拒绝使用“Invalid byte 1 of 1-byte UTF-8”的消息

调用者系统建议我在响应的 xml 声明中取出 encoding 属性。我不知道如何告诉轴不要把这个设置。有谁知道怎么做?

4

2 回答 2

1

最好将 Axis 响应保持为 UTF-8,而是尝试将有效负载的编码从 1252 更改为 UTF-8。您如何从有效负载中组装 SOAP 响应?

于 2009-07-29T20:48:57.860 回答
1

原始 XML 的编码是否在 XML 标头中正确声明为 Windows-1252?如果不是,那么它就不是真正的 XML,并且该系统已损坏;如果它被声明并且 Axis2 只是将其重新标记为 UTF-8 而没有实际转换数据,那么 Axis2 (非常严重)损坏了。

无论哪种情况,都要修复损坏的系统。不要删除编码 - 这是你能做的最糟糕的事情。如上所述:没有声明编码的 XML 不是 XML,它是随机数据,可能看起来有点像 XML。

于 2010-01-18T08:09:56.203 回答