vb 读取html 乱码,如何解决 VB 获取UTF8 显示乱码的問題

'-----------UTF8转Unicode编码

Private Declare Function MultiByteToWideChar Lib kernel32 (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long

Private Const CP_UTF8 = 65001

'Purpose:Convert Utf8 to Unicode

Public Function UTF8_Decode(ByVal sUTF8 As String) As String

Dim lngUtf8Size As Long

Dim strBuffer As String

Dim lngBufferSize As Long

Dim lngResult As Long

Dim bytUtf8() As Byte

Dim n As Long

If LenB(sUTF8) = 0 Then Exit Function

On Error GoTo EndFunction

bytUtf8 = StrConv(sUTF8, vbFromUnicode)

lngUtf8Size = UBound(bytUtf8) + 1

On Error GoTo 0

lngBufferSize = lngUtf8Size * 2

strBuffer = String$(lngBufferSize, vbNullChar)

'Translate using code page 65001(UTF-8)

lngResult = MultiByteToWideChar(CP_UTF8, 0, bytUtf8(0), _

lngUtf8Size, StrPtr(strBuffer), lngBufferSize)

'Trim result to actual length

If lngResult Then

UTF8_Decode = Left$(strBuffer, lngResult)

End If

EndFunction:

End Function

'把你上面获取的内容转一下就行,比如Text1.Text=UTF8_Decode(strResponse)

还可以加多一句InStr(1, strResponse, charset=utf-8) 0判断是否是UTF8编码再执行,不是UTF8的就直接显示。 还有些网页编码那里是大写的,要这样写InStr(1, strResponse, charset=UTF-8) 0

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值