1、你的WebService是用Delphi写的吗?由于用Delphi写比较麻烦,所以我没有测试,
但你可以用C#写一个asmx,用来测试的结果是没有问题的。
<%@ WebService language="C#"
Class="MathService"
%>
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
public class TestService: System.Web.Services.WebService
{
[WebMethod]
public string GetName()
{
return "Hello,歡迎你!";
}
}
2、你的WebService与Client所在机器的语言选项是否一样?
按理来说,WebService端传递的是WideString,应该不会乱码的。
你可以试着以这样的方式来做测试:
服务器:
function GetName: TByteDynArray;
var
Str:string;
iLen:integer;
begin
Str:='WebService 互操作测试';
iLen:=Length(Str);
SetLength(Result,iLen);
Move(Str[1],Result[0],iLen);
end;
客户端:
byte[] bytes=obj.GetName();
string result=Encoding.GetEncoding(936).GetString(bytes);
//若服务器为简体,则CodePage为936,若服务器为繁体,则CodePage为950