Asp 에서 JQuery 의 AJAX 를 사용 하여 중국어 난호 해결 방법 을 제출 합 니 다.

클 라 이언 트 페이지:client.html

<script>
    //jquery post
    $.post
    (
        'server.asp',
        {
            Act:'DoSubmit',
            UserName:escape(' '),//
           WebSite:'www.jb51.net'
        },
        function(data)
        {
            alert(unescape(data));//
        }
    );   
</script>
서버 쪽:server.asp

< %
Response.Charset="gb2312"
Dim UserName,WebSite
If Request.Form("Act")="DoSubmit" Then
UserName=Request.Form("UserName")
WebSite =Request.Form("WebSite")
 
'
UserName=VbsUnEscape(UserName)//
 
'
'---
 
' , VbsEscape()
Response.Write VbsEscape(UserName)
End If
%>
 
 
< %
' javascript escape()
Function VbsEscape(str)
    dim i,s,c,a
    s=""
    For i=1 to Len(str)
        c=Mid(str,i,1)
        a=ASCW(c)
        If (a>=48 and a< =57) or (a>=65 and a< =90) or (a>=97 and a< =122) Then
            s = s & c
        ElseIf InStr("@*_+-./",c)>0 Then
            s = s & c
        ElseIf a>0 and a&lt;16 Then
            s = s & "%0" & Hex(a)
        ElseIf a>=16 and a&lt;256 Then
            s = s & "%" & Hex(a)
        Else
            s = s & "%u" & Hex(a)
        End If
    Next
    VbsEscape=s
End Function
' javascript unescape()
Function VbsUnEscape(str)
                Dim x
    x=InStr(str,"%")
    Do While x>0
        VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)
        If LCase(Mid(str,x+1,1))="u" Then
            VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))
            str=Mid(str,x+6)
        Else
            VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))
            str=Mid(str,x+3)
        End If
        x=InStr(str,"%")
    Loop
    VbsUnEscape=VbsUnEscape&str
End Function
%>
javascript 에서 escape()함 수 는 문자열 을 인 코딩 할 수 있 습 니 다.모든 컴퓨터 에서 이 문자열 을 읽 을 수 있 습 니 다.
unescape()를 사용 하여 escape()인 코딩 된 문자열 을 디 코딩 할 수 있 습 니 다.
사실 Asp 에서 이 두 함수 도 작용 을 하 는데 의외로 많은 asp 사이트 에서 소개 하지 않 았 다.
그렇지 않 으 면 위 에 있 는 것 처럼 함 수 를 써 서 디 코딩 을 할 수 밖 에 없다.복잡 하고 성능 이 좋 지 않다.
위의 서버 쪽:server.asp 는 다음 과 같이 쓸 수 있 습 니 다.
Asp 의 unescape()와 escape()함수

< %
Response.Charset="gb2312"
Dim UserName,WebSite
If Request.Form("Act")="DoSubmit" Then
UserName=Request.Form("UserName")
WebSite =Request.Form("WebSite")
 
'
UserName=UnEscape(UserName)//
 
'
'---
 
' , VbsEscape()
Response.Write Escape(UserName)
End If
%>
이렇게 하면 훨씬 간단 하 다.

좋은 웹페이지 즐겨찾기