1

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

%>
4

1 に答える 1