项目中遇到问题,公司使用的是pb9.0,需要对url进行编码,并且第三方的文档上边给了js的例子,说是可以使用js的encodeURI对url编码,
于是想到是否可以直接使用js的控件来使用js的函数,百度了一下,发现真有,综合了网友们的办法,写出了以下方法
/*uf_encodeuri ref string as_url //需要编码的的url ref string as_error */ IF inv_String.of_IsEmpty(as_url) THEN as_error = "地址不能为空!" RETURN -1 END IF oleobject lo_jsscript lo_jsscript = create oleobject long ll_ret ll_ret = lo_jsscript.connecttonewobject("MSScriptControl.ScriptControl") if ll_ret <> 0 then as_error = '创建MSScriptControl.ScriptControl对象出错,请注册msscript.ocx,错误编码:' + String(ll_ret) return -1 end if lo_jsscript.language = "jscript" String ls_url ls_url = lo_jsscript.Eval('encodeURI(~'' + as_url + '~')') as_url = ls_url destroy lo_jsscript RETURN 1
注意,在给url编码时,使用了msscript.ocx控件,此控件是系统自带控件,打开浏览器时,如果提示未安装控件,则说明控件被注销或删除了,则按装一个即可。
a) 直接解压msscript.rar包,拷贝msscript.ocx文件到系统目录里:
1、Windows 95/98/Me系统,将msscript.ocx复制到C:WindowsSystem目录下。
2、Windows NT/2000系统,将msscript.ocx复制到C:WINNTSystem32目录下。
3、Windows XP/WIN7/Vista系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将msscript.ocx复制到C:WindowsSystem32目录下。
4、如果您的系统是64位的请将32位的dll文件复制到C:WindowsSysWOW64目录具体的方法可以参考这篇文章:win7 64位旗舰版系统运行regsvr32.exe提示版本不兼容
b) 打开"开始-运行-输入regsvr32 msscript.ocx",回车即可解决。希望脚本之家为您提供的msscript.ocx对您有所帮助
如果提示“模块atiacmxx.dll可能与您正在运行的windows版本不兼容,检查该模块是否与regsvr.exe的x86或x64版本兼容” 则打开cmd:
定位到C:WINDOWSsyswow64目录,输入regsvr32 msscript.ocx,即可。