帮一客户修改VB6程序,需要对一个http url进行编码操作,也就是url encode。经过一番研究,决定用插件实现。
1. 安装插件Chilkat
Chilkat Full-Version Software Components Downloads (chilkatsoft.com)
选择 Chilkat ActiveX Components
win32和x64的版本,实测我的Win10 x64系统用win32版本是有效的。
2. 添加引用
工程 > 引用,勾选 Chilkat ActiveX v9.5.0, 确定
3. 代码
Public Function URLEncodeNew(ByVal strContent As String) As String
Dim strObj As New CkString
strObj.str = strContent
Dim str As String
str = strObj.GetEncoded("url", "utf-8") 'utf-8
str = Replace(str, ",", "%2C") '处理逗号
URLEncodeNew = str
End Function
注意,要设置Charset为utf-8,不然遇到中文会有问题。
另外,实测这段逻辑会漏掉英文逗号的处理,因此在代码中用Replace函数进行替换处理,如果发现有其他字符漏掉,也可以用此办法处理。
实测有效,问题解决。