我有一个网站,谷歌在我的网站上发布了一些链接,并发送通过以下网址
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
%>
答案 0 :(得分:0)
您好像没有将页面定义为UTF-8 客户端。您可以在<head></head>
内添加此内容:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />