ASP URLDecode - 转换不正确

时间:2013-02-12 06:28:06

标签: asp-classic

我有一个网站,谷歌在我的网站上发布了一些链接,并发送通过以下网址

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

%>

1 个答案:

答案 0 :(得分:0)

您好像没有将页面定义为UTF-8 客户端。您可以在<head></head>内添加此内容:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />