我有一个关于在Web服务中将XML作为字符串发送的问题。我们的一个提供商开发了我们应该使用的web服务。他们的web服务基本上是用于他们自己的请求/响应消息的传输机制,例如类MyRequest被序列化为一个XML字符串,使用JAXB传递给它的webservice中的setRequest方法,可能是因为它是对他们来说最简单的方法,或者是因为他们希望在他们的应用程序中具有高透明度......我不知道。不管怎样,这是我的问题。JAX-WS和字符编码问题
如果我有一个具有字符编码ISO_8859-1的web服务,但序列化的XML具有编码UTF-8的字符(或任何其他支持比ISO_8859-1更多字符的编码),它们是否会被正确序列化和反序列化?或者我将不得不发送有关字符串内容的信息?如果是这样,我该怎么做?
Web服务的服务器端是用.NET编写的。 Java和.NET之间的兼容性如何? .NET中是否存在Java中不支持的编码,反之亦然?
/安德烈亚斯
Okey,因此如果webservice具有字符编码UTF_8859-1并且封装的序列化XML具有字符编码UTF-8,则所包含的字符串将被转义。那是对的吗?如果封装的序列化字符串被封装在CDATA部分中,我猜这将是有效的,因为它是字符数据,对吧? – 2010-07-26 11:57:17
不是。其他XML中的XML实际上并没有自己的编码,因为它只是外部XML中的Unicode文本(因此它具有相同的编码)。在XML XML编码中不能表示的任何字符都将用数字字符引用表示。 – 2010-07-26 12:16:11