调用WebService接口,编制短信出现乱码(全是???)(28分)

  • 主题发起人 主题发起人 guest8188
  • 开始时间 开始时间
G

guest8188

Unregistered / Unconfirmed
GUEST, unregistred user!
我调用的是WebService接口的网关!目标是短信开发。WebService中有个“Send”方法,其中有个参数就是短信内容,但为什么我写出来的程序在发送短信时对方手机总是收到全是“?”,而且只有中文有错,发英文字符不会出错。我试着用Utf8Decode,AnsiToUtf8,UnicodeToUtf8,等方法,但都不能解决问题!
全部家当了,多谢各位!
 
我正在写手机短信收发软件,看来不是WebService问题,应该是短信编码的问题.
7Bit,8Bit,16bitUcs2三种编码,应该选用第三种编码.
并且不能直接调用delphi的几个函数
应该使用下面的对中英文混合短信进行编码,然后发送出去
function GSMEncodeUcs2(const Value: WideString): string;
var
i,j: integer;
Wide: string;
begin
Result := '';
j := length(Value);
for i := 1 to j do begin
Wide := IntToHex(Ord(Value),4);
Result := Result + Wide;
end;
end;
 
我也知道WebService没问题,是编码的问题!但现在不知道是什么编码才正确!
deepblue2004老兄,不行啊!
原本我短信内容有汉字与英文字符,原来的程序是对方收到为汉字显示的是一排“?”而英文和数字是正确。用了你的GSMEncodeUcs2方法后全都不对啦!
比如说我原来程序发送"测试短信abc123"对方收到为"????????????abc123"
而用你的GSMEncodeUcs2编码后方收到为"6D4B8BD577ED4FE1006100620063003100320033"
怎么回事呢!帮个忙啊,好人做到底,我其地方还有贴子,你进去留言分不够我再加!
 
如果你的WebService调用时,参数是中文,那你试试在GetWebServiceInterface的函数里加上
with RIO do
begin
Converter.Options := Converter.Options + [soUTF8InHeader];
end;
 
后退
顶部