대부분의 소스 들이 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사용시 euc-kr에서 한글깨질때|작성자 클리티에
'Ajax' 카테고리의 다른 글
Ajax 객체 만들기 (0) | 2013.06.18 |
---|---|
XMLHttpRequest 객체 (0) | 2013.06.18 |