2009-06-29 54 views
0

为了'从Java提供.NET Web服务'我通过直接套接字连接传递xml字符串 到服务器。通过Java传递UTF8字符串到.NET Web服务

只要我在我的xml字符串中不包含任何'奇怪的' 字符,一切都可以运行wunderbar。例如,Ä或ß。

我脚本化并认为在php5中,问题可以通过 utf8_encode(myXmlString)来解决。可悲

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

不工作。

任何提示将不胜感激。提前

 A 

回答

2

如果您的XML编码正确,则不应该有问题。我的猜测是,你的XML是不正确的开始。我会强烈建议您解决所有问题,以产生并消费正确的价值观,而不是努力工作。

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

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

0

THX不要忘了,你有2个级别这里编码:

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

1 .:我可以将我的XML写入一个文件,在那里是正确的。 2 .:我将内容类型设置为“application/x-www-form-urlencoded; charset UTF-8”,因为如果我不这样做,Web服务不响应。 (不幸的是,我没有访问该系统) - 是否有没有大约相当于php的utf8_encode? sry for lame'in around ... – KB22 2009-06-29 13:22:25

相关问题