Delphi中调用.net的Web Service时,传入字符串编码的问题

ShardowM 2006-10-27 01:06:13
我在Delphi中用import wdsl的方法调用.net的Web Service,当Delphi程序在调用该Web Service的web方法时,将一个中文字符串作为参数传入到该方法中,在调试中发现在Web Service中执行该方法是传入的中文都变成了问号。请问如何解决该问题
...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
why101 2007-03-23
  • 打赏
  • 举报
回复
学习
ShardowM 2007-03-21
  • 打赏
  • 举报
回复
aa
ShardowM 2007-03-21
  • 打赏
  • 举报
回复
lxw76(风起云飞扬) 是正确的,呵呵.


-----------------------------------------------------------------------------------
Delphi7编写的客户端调用C#编写的WebService服务时,如果函数中传递的参数为汉字时,可能出现乱码现象。

在网上搜索了一些资料,找到解决办法:将HTTPRIO的UseUTF8InHeader属性改为true即可。
即编辑由Import WSDL文件生成的 *.pas 单元文件,在Get函数中增加一句:RIO.HTTPWebNode.UseUTF8InHeader:=True。

代码片断大致如下:

------------------
.......
try
RIO.HTTPWebNode.UseUTF8InHeader:=True; //在此添加一句,修改编码方案。
Result := (RIO as test);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
.......
----------------
lxw76 2006-11-03
  • 打赏
  • 举报
回复
HTTPPRIO中有一属性HEEPWEPNODE USEUTF8inharder 修改为true ,中文字符就没有问题了,
lobby 2006-10-31
  • 打赏
  • 举报
回复
接口单元菜单New 那里引入就可以了。
dabaicai 2006-10-31
  • 打赏
  • 举报
回复
据说传入的时候字符要加pchar()

顺便问个问题,delphi调用.net的webservice的时候,那个接口单元的代码怎么来的,不是要自己写吧(以前没搞过.net)
ShardowM 2006-10-27
  • 打赏
  • 举报
回复
不行
cangwu_lee 2006-10-27
  • 打赏
  • 举报
回复
utf-8 编码

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧