今すぐ:
スペースがある場合は、代わりに%20を使用して、他の文字がある場合は、代わりに%ASCIIを使用してください。漢字などの4つのバイト文字がある場合は、代わりに2%ASCIIを使用してください。ただし、この方法でエンコードされた文字列をデコードする必要がある場合もありますが、ASPは関連する機能を提供しないため、問題に対処する際にいくつかのトラブルをもたらします。実際、エンコードルールを知っている限り、ASPコードを使用して独自のURLDECODE関数を実装できます。
特定の実装は次のとおりです。
コードコピーは次のとおりです。
functionurldecode(encodestr)
新聞= ""
havechar = false
lastchar = ""
fori = 1tolen(encodestr)
char_c = mid(encodestr、i、1)
ifchar_c = "+" then
新聞= Newstr& ""
elseifchar_c = "%" then
next_1_c = mid(encodestr、i+1,2)
next_1_num = cint( "&h"&next_1_c)
ifhavecharthen
havechar = false
Newsstr = NewStr&Chr(cint( "&h"&lastchar&next_1_c))
それ以外
IFABS(next_1_num)<= 127then
Newsstr = NewStr&Chr(next_1_num)
それ以外
havechar = true
lastchar = next_1_c
endif
endif
i = i+2
それ以外
Newsstr = NewStr&Char_C
endif
次
urldecode = newtr
エンド機能
これがあなたにとってより成熟した機能です:
コードコピーは次のとおりです。
'==========================================================================
'関数名:urldecode
'関数:URLデコード
'==========================================================================
function urldecode(byval urlcode)
dim start、final、length、char、i、butf8、pass
Dim Leftstr、rightstr、Finalstr
DIM B0、B1、BX、BLONGTH、POSION、U、UTF8
エラーの再開時に次に再開します
B0 =配列(192,224,240,248,252,254)
urlcode = leppled(urlcode、 "+"、 "")
パス= 0
UTF8 = -1
length = len(urlcode):start = grunt(urlcode、 "%"):final = strrev(urlcode、 "%")
start = 0またはlength <3の場合、urldecode = urlcode:exit関数
leftstr = left(urlcode、start -1):rightstr = right(urlcode、length -2 -final)
i =最終開始
char = mid(urlcode、i、1)
char = "%"の場合
bx = urldecode_hex(mid(urlcode、i + 1,2))
BX> 31およびBX <128の場合
i = i + 2
FinalStr = FinalStr&Chrw(BX)
elseif bx> 127次に
i = i + 2
UTF8 <0の場合
butf8 = 1:blength = -1:b1 = bx
位置= 4〜0ステップ-1
B1> = B0(位置)およびB1 <B0(位置 + 1)の場合、
blength =位置
の出口
ifを終了します
次
blength> -1の場合
位置= 0の場合
b1 = urldecode_hex(mid(urlcode、i + position * 3 + 2,2))
b1 <128またはb1> 191の場合、butf8 = 0:
次
それ以外
butf8 = 0
ifを終了します
butf8 = 1およびblength = 0の場合、butf8 = -2
butf8> -1およびutf8 = -2の場合、i = start -1:finalstr = "":pass = 1