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

通过java将UTF8字符串传递给.NET web服务,java,utf-8,Java,Utf 8,为了从java“馈送”一个.NETWeb服务,我传递xml字符串 通过直接套接字连接到服务器 只要我不包含任何“wierd”,任何东西都能正常工作 我的xml字符串中的字符。Ä或ß为了举例 我写了一些脚本,认为在php5中,问题可以通过 utf8\u编码(myXmlString)。悲哀地 retString = new String (retString.getBytes(),"UTF-8"); 不起作用 如有任何提示,将不胜感激 提前thx A 不要忘记,这

为了从java“馈送”一个.NETWeb服务,我传递xml字符串 通过直接套接字连接到服务器

只要我不包含任何“wierd”,任何东西都能正常工作 我的xml字符串中的字符。Ä或ß为了举例

我写了一些脚本,认为在php5中,问题可以通过
utf8\u编码(myXmlString)
。悲哀地

retString = new String (retString.getBytes(),"UTF-8");          
不起作用

如有任何提示,将不胜感激

提前thx

      A

不要忘记,这里有两个编码级别:

  • XML文档的编码。其编码是否正确(例如UTF-8)。能否在发送到服务器之前将其写入文件,并验证其编码是否正确
  • 字符串化XML文档的编码。同样,您需要检查这一点。你得到字符串,然后执行它吗?您应该为此使用指定的编码,而不是不推荐使用的默认实现

  • 如果XML编码正确,就不会有问题。我猜您的XML一开始就不正确。我强烈建议您解决所有问题,以产生和使用正确的价值观,而不是为此而工作

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


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

    1:我可以将XML写入文件,这是正确的。2.:我正在将内容类型设置为“application/x-www-form-urlencoded;charset UTF-8”,因为如果我不这样做,web服务不会响应。(不幸的是,我无法访问该系统)——是否没有与php的utf8_编码等效的近似值?为周围的瘸子们准备sry。。。