아는 것이 좋은 것이다.

[ASP] AJAX 한글 깨짐 해결방법, encodeURI로 변환값 ASP로 디코딩(한글깨짐 방지) 본문

ASP

[ASP] AJAX 한글 깨짐 해결방법, encodeURI로 변환값 ASP로 디코딩(한글깨짐 방지)

start0 2014. 7. 10. 09:20
<%
Public Function URLDecodeUTF8(byVal pURL)
  Dim i, s1, s2, s3, u1, u2, result
  pURL = Replace(pURL,"+"," ")
  For i = 1 to Len(pURL)
   if Mid(pURL, i, 1) = "%" then
    s1 = CLng("&H" & Mid(pURL, i + 1, 2))
    '2바이트일 경우
    if ((s1 AND &HC0) = &HC0) AND ((s1 AND &HE0) <> &HE0) then
     s2 = CLng("&H" & Mid(pURL, i + 4, 2))
     u1 = (s1 AND &H1C) / &H04
     u2 = ((s1 AND &H03) * &H04 + ((s2 AND &H30) / &H10)) * &H10
     u2 = u2 + (s2 AND &H0F)
     result = result & ChrW((u1 * &H100) + u2)
     i = i + 5
    '3바이트일 경우
    elseif (s1 AND &HE0 = &HE0) then
     s2 = CLng("&H" & Mid(pURL, i + 4, 2))
     s3 = CLng("&H" & Mid(pURL, i + 7, 2))
     u1 = ((s1 AND &H0F) * &H10)
     u1 = u1 + ((s2 AND &H3C) / &H04)
     u2 = ((s2 AND &H03) * &H04 +  (s3 AND &H30) / &H10) * &H10
     u2 = u2 + (s3 AND &H0F)
     result = result & ChrW((u1 * &H100) + u2)
     i = i + 8
    end if
   else
    result = result & Mid(pURL, i, 1)
   end if
  Next
  URLDecodeUTF8 = result
End Function

Response.Write URLDecodeUTF8("%EA%B7%B8%EC%99%B8%EB%93%B1%EA%B8%89") '// ajax로 보내기전 encodeURI로 인코딩후 변수를 다시 디코딩한다. 한글 자체를 ajax로 전송시 한글이 깨지기 때문에 변환을 해주어야 한다.(한글깨짐방지)

%>

AJAX 전송 예제는 AJAX카테고리에 있습니다.


Comments