通用函数如下,但UBound(TmpData)超过70万,故造成速度特别慢,用户体验不好,有没有别的快速的方法或算来,来实现啊????
Public Function URLEncode(ByVal strParameter As String) As String
Dim S As String
Dim i As Double
Dim intValue As Integer
Dim TmpData() As Byte
S = ""
TmpData = StrConv(strParameter, vbFromUnicode)
For i = 0 To UBound(TmpData)
intValue = TmpData(i)
If (intValue >= 48 And intValue <= 57) Or (intValue >= 65 And intValue <= 90) Or (intValue >= 97 And intValue <= 122) Then
S = S & Chr(intValue)
ElseIf intValue = 32 Then
S = S & "+"
Else
S = S & "%" & Hex(intValue)
End If
Next i
URLEncode = S
End Function
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
点击提交工单:https://ticket.bce.baidu.com/#/ticket/create~productId=96
如何提交工单反馈问题如何提交工单反馈问题
我也发现这个问题了,转换极其慢,搜了一下,调用JS来进行URLEncode就可以了,闪电转换完
Public Function Escape(ByVal strText As String) As String
'字符串特别长比如80万长度的时候,拼接操作极其缓慢(十几分钟都不止),直接调用JS的URLencode功能,瞬间完成
Set JS = CreateObject("msscriptcontrol.scriptcontrol")
JS.Language = "JavaScript"
Escape = JS.Eval("encodeURIComponent('" & Replace(Replace(strText, "'", "\'"), Chr(10), "") & "');")
End Function
我也碰到同样的问题,请问楼主解决了吗?是否能分享一下,头大!!!
请问一下怎么实现的呢?可以附一下代码给我吗?谢谢
有解决吗
老哥,我解决了,.net framework4.0有个自带的函数,快的很
感觉vb和js一样,很不规法,看着乱
vb现阶段落伍了吧
小弟没啥好主意,等大神正在赶来~