我有一个网站,谷歌在我的网站上拍摄了一些链接并通过以下 URL 发送
http://www.globalpropertyonline.net/test.asp?town=gand%EDa
我有一个我在网上找到的 URLDecode 函数来解码 %ED
但是,这似乎不是以正确的方式工作。
%ED 应该是这样的:í
所以当我解码它时,这个词应该是 gandía
但相反,我得到了以下词:gand�a
在 google 获取链接的页面上,它正确显示为 gandía,但它在网站管理员工具中提示我以下链接有错误 500,这是因为当我尝试使用此名称并将其发送到 MYSQL 查询时它崩溃了错误 500 但如果我有 gandía 那么它就起作用了!
所以,我的主要问题是我将 %ED 作为 URLEncode 发送,我想在将其发送到我的数据库查询之前对其进行解码。
在我的 ASP 页面中,我使用 UTF-8 编码如下。
<%@ CodePage=65001 Language="VBScript"%>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
这是我用来解码它的代码,但如果得到 gandía,我会得到这个:gand�a
任何帮助将不胜感激
<%@ CodePage=65001 Language="VBScript"%>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
MyTown = Request("town")
response.write URLDecode(MyTown)
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
%>