기존에 사용하던 URLDECODE 함수가
특수문자 또는 한자 , 일부 외국어 등 UTF-8 문자열에서 제대로 DECODE 되지 않는 문제가 있어서
찾아보았더니 문자셋 문제였습니다.
글쓴분은 이미 100년전에 찾으신듯한데
호갱 개발자 반성해봅니다..
Function UrlDecode_GBToUtf8(ByVal str) Dim B,ub ''中文字的Unicode码(2字节) Dim UtfB ''Utf-8单个字节 Dim UtfB1, UtfB2, UtfB3 ''Utf-8码的三个字节 Dim i, n, s n=0 ub=0 For i = 1 To Len(str) B=Mid(str, i, 1) Select Case B Case "+" s=s & " " Case "%" ub=Mid(str, i + 1, 2) UtfB = CInt("&H" & ub) If UtfB<128 Then i=i+2 s=s & ChrW(UtfB) Else UtfB1=(UtfB And &H0F) * &H1000 ''取第1个Utf-8字节的二进制后4位 UtfB2=(CInt("&H" & Mid(str, i + 4, 2)) And &H3F) * &H40 ''取第2个Utf-8字节的二进制后6位 UtfB3=CInt("&H" & Mid(str, i + 7, 2)) And &H3F ''取第3个Utf-8字节的二进制后6位 s=s & ChrW(UtfB1 Or UtfB2 Or UtfB3) i=i+8 End If Case Else ''Ascii码 s=s & B End Select Next UrlDecode_GBToUtf8 = s End Function
참고 Url :
- [2014/07/02] eclipse Jsp 개발환경 UTF-8 로 셋팅하는 방법 (2254)