VB에서 UTF8-유니코드 인코딩


  
  
  
  
  1. Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As LongByVal dwFlags As LongByRef lpMultiByteStr As Any, ByVal cchMultiByte As LongByVal lpWideCharStr As LongByVal cchWideChar As LongAs Long 
  2. Private Const CP_UTF8 = 65001  
  3.  
  4. 'Purpose:Convert Utf8 to Unicode  
  5. Public Function UTF8_Decode(ByVal sUTF8 As StringAs String 
  6.    Dim lngUtf8Size      As Long 
  7.    Dim strBuffer        As String 
  8.    Dim lngBufferSize    As Long 
  9.    Dim lngResult        As Long 
  10.    Dim bytUtf8()        As Byte 
  11.    Dim n                As Long 
  12.    If LenB(sUTF8) = 0 Then Exit Function 
  13.       On Error GoTo EndFunction  
  14.       bytUtf8 = StrConv(sUTF8, vbFromUnicode)  
  15.       lngUtf8Size = UBound(bytUtf8) + 1  
  16.       On Error GoTo 0  
  17.       lngBufferSize = lngUtf8Size * 2  
  18.       strBuffer = String$(lngBufferSize, vbNullChar)  
  19.       'Translate using code page 65001(UTF-8)  
  20.       lngResult = MultiByteToWideChar(CP_UTF8, 0, bytUtf8(0), _  
  21.          lngUtf8Size, StrPtr(strBuffer), lngBufferSize)  
  22.       'Trim result to actual length  
  23.       If lngResult Then 
  24.          UTF8_Decode = Left$(strBuffer, lngResult)  
  25.       End If 
  26. End Function 

 
위에서 얻은 내용을 돌리면 됩니다. 예를 들어 Text 1.Text=UTF8_Decode(str Response)는 Instr(1,str Response, "charset=utf-8") > 0을 추가하여 UTF8 인코딩이 실행되는지 판단할 수 있으며, UTF8이 아니면 바로 표시할 수 있다.Instr (1,str Response, "charset=UTF-8") > 0으로 대문자로 된 페이지 인코딩도 있습니다.

좋은 웹페이지 즐겨찾기