ใน ASP Classic ไม่มี UrlDecode ให้ใช้ซะงั้น ลองดูตัวนี้ครับ ใช้การสร้าง Function ขึ้นมาก่อนครับ
Code (ASP)
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
%
Response.AddHeader "HTTP", "HTTP/1.1 200 OK"
Response.write "Now URL = " & Request.ServerVariables("HTTP_URL")
'** Link Page ***'
Response.write "<hr>"
Response.write "<a href=/hello.html>Hello ASP</a> , <a href=/config.html>Config ASP</a> , <a href=/install.html>Install ASP</a>"
Response.write "<hr>"
'*** Include Content ***'
If Request.ServerVariables("HTTP_URL") = Server.URLEncode("/ทดสอบ.html") Then
Server.Transfer("hello.asp")
Else
' Default include
End IF
%>
และอีกหน้าหนึ่งที่ link มาต้องสร้างยังงัยค่ะเพื่อให้ได้เป็น url localhost/test/ทดสอบ.html ใช่เอาโค๊ตที่คุณ win ให้มาทำแบบนี้รึเปล่าค่ะ
Code (ASP)
<%
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = "test/ทดสอบ.html" 'ใช่เอา url ที่เราต้องการ Decode มาใ่ส่ตรงนี้ รึเปล่าค่ะ
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", "ทดสอบ ") 'แล้วช่องนี้ใช่เติมแบบนี้รึเปล่าค่ะ
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
%>
แล้วเวลา สร้าง link ต้อง ทำแบบนี้ใช่มั๊ยค่ะ ลองทำแบบนี้แล้วมันไม่ได้ค่ะไม่เกิดอะไรขึ้นและ link ไม่ไปค่ะ
<a href="<%=sOutput%>" class="footer">ทดสอบ</a>
Date :
2013-03-06 09:34:05
By :
มือใหม่
No. 10
Guest
หน้าที่ link ไปทำ decode ได้แล้วค่ะ ตาม Code ด้านล่างค่ะ
Code (ASP)
<%
Function URLDecode(str)
str = Replace(str, "+", " ")
For i = 1 To Len(str)
sT = Mid(str, i, 1)
If sT = "%" Then
If i+2 < Len(str) Then
sR = sR & _
Chr(CLng("&H" & Mid(str, i+1, 2)))
i = i+2
End If
Else
sR = sR & sT
End If
Next
URLDecode = sR
End Function
Function URLEncode(str)
URLEncode = Server.URLEncode(str)
End Function
str1 = "ทดสอบ.html"
str2 = URLEncode(str1)
str3 = URLDecode(str2)
Response.Write( "<br>" & str3)
%>
<a href="<%=str3%>">ทดสอบ</a>