通过java将UTF8字符串传递给.NET Web服务

时间:2009-06-29 10:43:50

标签: java utf-8

为了从java“提供”.NET Web服务,我确实传递了xml字符串 通过直接套接字连接到服务器。

只要我不包含任何'wierd',一切都在wunderbar上工作 我的xml字符串中的字符。例如,Ä或ß。

我编写了脚本,并认为在php5中问题解决了 utf8_encode(myXmlString)。不幸的是

retString = new String (retString.getBytes(),"UTF-8");          

无效。

任何提示都将不胜感激。

事先提前

      A

2 个答案:

答案 0 :(得分:2)

如果您的XML编码正确,则不应该出现问题。我的猜测是你的XML开头不正确。我强烈建议您修复所有内容以生成并使用正确的值,而不是解决这个问题。

特别是,您的retString应该已经具有正确的Unicode值。如果没有,那么无论你做什么,都会遇到问题。如果 具有正确的值,您应该能够使用UTF-8字符集将其转换为字节,并将其提供给套接字 - 只要XML声明自己为UTF格式-8开头。 (如果你没有指定任何其他内容,它将默认为UTF-8,只要它不以UTF-16字节顺序标记开头。)

我建议您查看我的Debugging Unicode Problems文章:检查每一步的数据,而不仅仅是打印字符串,而是查看其中的各个代码点。在Java和.NET两方面都这样做。

答案 1 :(得分:0)

不要忘记这里有2级编码:

  1. XML文档的编码。这是否具有正确的编码(例如UTF-8)。您可以在发送到服务器之前将其写入文件,并验证它是否已正确编码?
  2. 通过网络对字符串化XML文档进行编码。同样,你需要检查一下。你得到字符串,然后对它执行getBytes(String encoding)吗?您应该为此使用指定的编码,而不是已弃用的默认实现