我有一个关于在 Web 服务中将 XML 作为字符串发送的问题。我们的供应商之一开发了我们应该使用的网络服务。他们的网络服务基本上只是他们自己的请求/响应消息的传输机制,例如类 MyRequest 使用 JAXB 序列化为 XML 字符串,传递给他们的 web 服务中的 setRequest 方法,可能是因为这对他们来说是最简单的方法,也可能是因为他们希望他们的应用程序具有高透明度......我不知道。
无论如何。这是我的问题。
如果我有一个字符编码为 ISO_8859-1 的 Web 服务,但序列化 XML 的字符编码为 UTF-8(或支持比 ISO_8859-1 更多字符的任何其他编码),它们是否始终能够正确序列化和反序列化?或者我必须发送有关字符串内容的信息吗?如果可以,我该怎么做?
Web 服务的服务器端是用 .NET 编写的。 Java 和.NET 的兼容性如何? .NET 中是否存在 Java 不支持的编码,反之亦然?
/安德烈亚斯
最佳答案
如果他们正确地实现了网络服务(你也是),那么你不需要担心字符编码,因为:
- (格式良好的)XML 具有内置的元数据,可以准确找出所使用的字符编码,并且
- 由于 numeric character references,XML 允许任何 Unicode 字符以任何编码表示
所以总结一下:确保双方在支持 Unicode 的环境中处理他们的文本(C# 和 Java 对此很好)并使用正确的 XML 库(两种环境都带有这些库)并且只要你不弄乱手动设置,你应该没问题。
关于java - JAX-WS 和字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318834/