社区
Web 应用
帖子详情
用oleobject方式调用webservice,发现返回来的html是unicode编码问题
JY创建美好
2018-02-24 11:11:17
用OLEobject 方式 POST过去报文是正常的,但是pb程序里收到服务返回html编码格式是unicode的编码格式,文字都变成:“
essage":[{"IsSuccess":false,"Number":"1013","Info":"…………这样的了。
而用webservice studio 之类的工具调用,返回过来的内容是正常的汉字。 所以不知问题出在哪里,请各位大侠不吝赐教,谢谢!
...全文
529
1
打赏
收藏
用oleobject方式调用webservice,发现返回来的html是unicode编码问题
用OLEobject 方式 POST过去报文是正常的,但是pb程序里收到服务返回html编码格式是unicode的编码格式,文字都变成:“ essage":[{"IsSuccess":false,"Number":"1013","Info":"…………这样的了。 而用webservice studio 之类的工具调用,返回过来的内容是正常的汉字。 所以不知问题出在哪里,请各位大侠不吝赐教,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lucas.Ch
2019-05-13
打赏
举报
回复
工具调用会自动解析转义的,一般都不准,PB11以下,不支持unicode格式,ole是原生态的,不支持自动转义,需手工转义
pb
ole
object
word使用
pb
ole
object
word使用
C#开发COM组件供PB
调用
C#开发COM组件供PB
调用
有时PB里难以实现的功能,在C#里好容易就实现了,这时我们就可用C#来开发COM组件,在PB里
调用
即可。 PB
调用
方法: int intValue
ole
object
obj
Ole
obj
Ole
=create
OLE
Object
intValue=obj
Ole
.connecttonew
object
("MyLib.MyClass") Sle_1.Text=Obj
Ole
.GetIP()
VB拉伸RICHTEXTBOX的
OLE
对象.rar
VB拉伸RICHTEXTBOX的
OLE
对象,改变richtextbox中索引(从0开始)为index的
ole
object
的dwFlags,如果index小于等于-1,则应用于全部对象,获得richtextbox中
ole
object
的数量,记录下richtextbox当前选定的内容,删除当前的
ole
object
,只所以不用selstart之类的属性控制,是因为Re
Object
.cp是基于字节的,改变dwflags后重新插入
ole
object
……
ExcelHandler_Aspose_
Ole
Object
_pdf_excel_Aspose_
使用Aspose.Cells向Excel里插入
Ole
Object
对象文件,例如另一个Excel或PDF,ZIP等
在c# 2005中编写com组件,供PB11
调用
实例(附说明和源码)
在c# 2005中编写com组件,供PB11
调用
实例,研究了一下午,终于成功了,分享给大家 前言:c#中写的dll直接是不能被pb
调用
的,只有写成com组件才可以
调用
,所以用c#写dll时要注意。 1、c#2005中新建项目,类型为类库,项目名为AddCom确定。 配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 2、打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)],如果不改则不能被其他程序
调用
3、编写com组件会用到guid(全球唯一ID),编写com组件必须要用到。c#会默认生成一个放在AssemblyInfo.cs,如没有生成,网上下一个生成guid的软件,有很多呢。 4、c#中源代码如下,按如下方法编写代码后生成工程,/bin/release中得到AddCom.dll。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace AddCom { [Guid("298D881C-E2A3-4638-B872-73EADE25511C")] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); } [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")] [ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } } } 5、dos下利用 e:\regasm AddCom.dll 命令注册com组件,可以理解为非.net平台下的regsvr32注册dll组件。提示注册成功即可。 6、pb11中利用
ole
调用
来
调用
com组件,注意,此com组件无法用create
ole
control的browse查看到,只能利用如下的方法直接动态
调用
。 integer li_a,li_b,li_total //----------注册c#生成的com组件------------
Ole
Object
ole
_AddCom
ole
_AddCom = Create
OLE
Object
li_rc =
ole
_AddCom.ConnectToNew
Object
("AddCom.AddComService") //AddCom为c#中namespace,AddComService为c#中namespace中的class if li_rc <> 0 then MessageBox("ConnectToNew
Object
", string(li_rc) ) return end if //----------
调用
com组件中的函数-------------- li_total =
ole
_AddCom.iadd(li_a, li_b) //iadd为c#中namespace(AddCom为c)中class(AddComService为c)中的函数(iadd()) 完毕 *以上为个人经验,欢迎大家发邮件沟通。 email: kair-china@vip.sina.com qq: 55092518
Web 应用
662
社区成员
2,333
社区内容
发帖
与我相关
我的任务
Web 应用
PowerBuilder Web 应用
复制链接
扫一扫
分享
社区描述
PowerBuilder Web 应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章