본문 바로가기

Ajax

[중요한 정보]ajax euc-kr post 한글깨짐 방지

대부분의 소스 들이 utf-8이나 인코딩후 디코딩 시키는 방법인 소스가 대부분 인데


아래 소스는 인코딩 타입을 변환하지 않고 euc-kr 에서 한글깨짐 방지로 값을 받을 수 있다.


보내는 페이지에서

%값을 임의의 값으로 변경.

ASP에서는 %를 자동으로 디코딩함. 

<script> 

var param = $("#searchFrm").serialize().replace(/%/gi,"|");

</script> 

받는 페이지에서는

 

<% 

search = Request("search")

search = URLDecodeUTF8(Replace(search,"|","%"))

%>

 

받은 변수에서 %로 변경해준후 디코딩 해주면 됨.

 

    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 


'Ajax' 카테고리의 다른 글

Ajax 객체 만들기  (0) 2013.06.18
XMLHttpRequest 객체  (0) 2013.06.18