java - JAX-WS 和字符编码问题

标签 java wcf encoding web-services jax-ws

我有一个关于在 Web 服务中将 XML 作为字符串发送的问题。我们的供应商之一开发了我们应该使用的网络服务。他们的网络服务基本上只是他们自己的请求/响应消息的传输机制,例如类 MyRequest 使用 JAXB 序列化为 XML 字符串,传递给他们的 web 服务中的 setRequest 方法,可能是因为这对他们来说是最简单的方法,也可能是因为他们希望他们的应用程序具有高透明度......我不知道。

无论如何。这是我的问题。

如果我有一个字符编码为 ISO_8859-1 的 Web 服务,但序列化 XML 的字符编码为 UTF-8(或支持比 ISO_8859-1 更多字符的任何其他编码),它们是否始终能够正确序列化和反序列化?或者我必须发送有关字符串内容的信息吗?如果可以,我该怎么做?

Web 服务的服务器端是用 .NET 编写的。 Java 和.NET 的兼容性如何? .NET 中是否存在 Java 不支持的编码,反之亦然?

/安德烈亚斯

最佳答案

如果他们正确地实现了网络服务(你也是),那么你不需要担心字符编码,因为:

  1. (格式良好的)XML 具有内置的元数据,可以准确找出所使用的字符编码,并且
  2. 由于 numeric character references,XML 允许任何 Unicode 字符以任何编码表示

所以总结一下:确保双方在支持 Unicode 的环境中处理他们的文本(C# 和 Java 对此很好)并使用正确的 XML 库(两种环境都带有这些库)并且只要你不弄乱手动设置,你应该没问题。

关于java - JAX-WS 和字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318834/

相关文章:

java - 在 Windows 上 : using a hook to capture global input events in Java

WCF 端点不返回 WSDL

java - 如何使用 Java 查找文件的编码

python - 在cx_Oracle/UnicodeDecodeError中设置查询结果编码为汉字

java - 如何对图像进行编码?

java - 打印桌面的屏幕截图并转换为像素矩阵 [0,1]

java - java算术运算结果的数据类型

java - 在 Joda 中将 UTC 转换为 LocalDateTime?

wcf - 自定义工具警告: An item with the same key has already been added

wcf - WCF 响应中的 MustUnderstand 属性导致 Java/Axis 客户端出错