用webbrowser控件的post方法提交数据到ASP论坛
将中文字符打包成byte时会溢出,怎么办?
如,
ch="靓" Asc(ch)=-2394,而ByteArray() 定义为byte,(0-256)
为什么一定要把字符打包成byte才可以上传到asp程序上面呢?通用模块:
Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
iNewBytes = Len(PostData) - 1
If iNewBytes < 0 Then Exit Sub
ReDim ByteArray(iNewBytes)
For i = 0 To iNewBytes
ch = Mid(PostData, i + 1, 1)
If ch = Space(1) Then
ch = "+"
End If
ByteArray(i) = Asc(ch)
Next
End Sub
Private Sub cmd6_Click()
ReDim aByte(0) As Byte cpostdata = nData
PackBytes aByte(), cpostdata For i = LBound(aByte) To UBound(aByte)
edtPostData = edtPostData + Chr(aByte(i))
Next Dim vPost As Variant
vPost = aByte
Dim vFlags As Variant
Dim vTarget As Variant
Dim vHeaders As Variant
'vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
vHeaders = "Content-Type content=text/html; charset=gb2312"
WebBrowser1.navigate ActURL, vFlags, vTarget, vPost, vHeaders
End Sub
将中文字符打包成byte时会溢出,怎么办?
如,
ch="靓" Asc(ch)=-2394,而ByteArray() 定义为byte,(0-256)
为什么一定要把字符打包成byte才可以上传到asp程序上面呢?通用模块:
Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
iNewBytes = Len(PostData) - 1
If iNewBytes < 0 Then Exit Sub
ReDim ByteArray(iNewBytes)
For i = 0 To iNewBytes
ch = Mid(PostData, i + 1, 1)
If ch = Space(1) Then
ch = "+"
End If
ByteArray(i) = Asc(ch)
Next
End Sub
Private Sub cmd6_Click()
ReDim aByte(0) As Byte cpostdata = nData
PackBytes aByte(), cpostdata For i = LBound(aByte) To UBound(aByte)
edtPostData = edtPostData + Chr(aByte(i))
Next Dim vPost As Variant
vPost = aByte
Dim vFlags As Variant
Dim vTarget As Variant
Dim vHeaders As Variant
'vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
vHeaders = "Content-Type content=text/html; charset=gb2312"
WebBrowser1.navigate ActURL, vFlags, vTarget, vPost, vHeaders
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货