VB中当charset=UTF-8时base64解码算法,请各位大侠多多指点
解决方案 »
- 如何把表单中的回车在excel中转为强制回车?
- VB提交POST表单,急!!!
- VB6.0初学者,向诸位请教九个问题,谢谢!(要求使用VB6.0实现)
- 如何判断Byte型变量所占的字节长度?
- 马上要强行结帖了,那些放了分数,却没有解决问题的帖子,也要扣除信誉分?如果这样,在扣除信誉分之时,就是本人离开CSDN之日。
- 关于VB的几个问题
- 求救 :谁有百什么达的地址.我记不住了.出了1张VB源码的光盘.谢谢大家 .在线等候
- 如何让鼠标可以改变mshflexgrid控件的列宽?
- 关于vb使用xmlhttp
- ACTIVE X???
- 请帮忙修改一句程序,如何在timer里面操作数据库里满足条件的数据
- 通过Teechart控件制作曲线图,运用其ADDXY方法进行绘制数据曲线,如何将底部横坐标的时间间隔拉一些呢?
Private Function funUTF8ToUniCode(ByRef bytUTF8() As Byte) As String
Dim utfLen As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim N As Long
Dim B As Byte
Dim cnt As Byte
Dim Buf() As String
utfLen = -1
On Error GoTo errFun
funUTF8ToUniCode = ""
utfLen = UBound(bytUTF8)
If utfLen = -1 Then Exit Function ReDim Buf(utfLen)
i = 0
j = 0
Do While i <= utfLen
B = bytUTF8(i)
If (B And &HFC) = &HFC Then
cnt = 6
ElseIf (B And &HF8) = &HF8 Then
cnt = 5
ElseIf (B And &HF0) = &HF0 Then
cnt = 4
ElseIf (B And &HE0) = &HE0 Then
cnt = 3
ElseIf (B And &HC0) = &HC0 Then
cnt = 2
Else
cnt = 1
End If
If i + cnt - 1 > utfLen Then
Buf(j) = "?"
Exit Do
End If
Select Case cnt
Case 2
N = B And &H1F
Case 3
N = B And &HF
Case 4
N = B And &H7
Case 5
N = B And &H3
Case 6
N = B And &H1
Case Else
Buf(j) = Chr(B)
GoTo Continued:
End Select
For k = 1 To cnt - 1
B = bytUTF8(i + k)
N = N * &H40 + (B And &H3F)
Next
Buf(j) = ChrW(N)
Continued:
i = i + cnt
j = j + 1
Loop
funUTF8ToUniCode = Join(Buf, "")
errFun:
End Function先用这个函数可以把UTF8转换为UniCode。
然后再解码