Google が自分のサイトのリンクをいくつかピックアップし、次の URL を介して送信する Web サイトを持っています。
http://www.globalpropertyonline.net/test.asp?town=gand%EDa
%ED をデコードするためにネットで見つけた URLDecode 関数の 1 つがあります。
ただし、これは正しい方法で機能していないようです。
%ED は次のようになります。
したがって、デコードすると、単語は gandía になるはずです
しかし、代わりに次の単語が表示されます: gand�a
Google がリンクを取得したページでは、gandía として正しく表示されますが、ウェブマスター ツールで次のリンクにエラー 500 が表示されます。これは、この名前を取得しようとして MYSQL クエリに送信するとクラッシュするためです。エラー500でしたが、ガンディアがあればうまくいきました!
したがって、私の主な問題は、%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
%>