加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB中UTF8转Unicode编码

发布时间:2020-12-16 22:42:49 所属栏目:大数据 来源:网络整理
导读: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 Priv
 
 
  1. PrivateDeclareFunctionMultiByteToWideCharLib"kernel32"(ByValCodePageAsLong,ByValdwFlagsAsLong,ByReflpMultiByteStrAsAny,ByValcchMultiByteAsLong,ByVallpWideCharStrAsLong,ByValcchWideCharAsLong)AsLong
  2. PrivateConstCP_UTF8=65001
  3. 'Purpose:ConvertUtf8toUnicode
  4. PublicFunctionUTF8_Decode(ByValsUTF8AsString)AsString
  5. DimlngUtf8SizeAsLong
  6. DimstrBufferAsString
  7. DimlngBufferSizeAsLong
  8. DimlngResultAsLong
  9. DimbytUtf8()AsByte
  10. DimnAsLong
  11. IfLenB(sUTF8)=0ThenExitFunction
  12. OnErrorGoToEndFunction
  13. bytUtf8=StrConv(sUTF8,vbFromUnicode)
  14. lngUtf8Size=UBound(bytUtf8)+1
  15. OnErrorGoTo0
  16. lngBufferSize=lngUtf8Size*2
  17. strBuffer=String$(lngBufferSize,vbNullChar)
  18. 'Translateusingcodepage65001(UTF-8)
  19. lngResult=MultiByteToWideChar(CP_UTF8,bytUtf8(0),_
  20. lngUtf8Size,StrPtr(strBuffer),lngBufferSize)
  21. 'Trimresulttoactuallength
  22. IflngResultThen
  23. UTF8_Decode=Left$(strBuffer,lngResult)
  24. EndIf
  25. EndFunction

把你上面获取的内容转一下就行,比如Text1.Text=UTF8_Decode(strResponse) 还可以加多一句InStr(1,strResponse,"charset=utf-8") > 0判断是否是UTF8编码再执行,不是UTF8的就直接显示。 还有些网页编码那里是大写的,要这样写InStr(1,"charset=UTF-8") > 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读