1

我有一个网站,谷歌在我的网站上拍摄了一些链接并通过以下 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

%>
4

1 回答 1

0

看起来您尚未将页面定义为 UTF-8 client-side。你可以通过在里面添加这个<head></head>

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

于 2013-02-12T11:11:15.183 回答