この記事では、主にASPのUrlencodeの問題の解決策を紹介します
ASPにパラメーターを渡すときに、非常に有用なシステムfunction serverがありますまた、それを使用した後、私はそれを想像したようにこのデコード機能を提供していないことが判明したことがわかりました。何をすべきか、自分でやる。
Urlencodeの原理は、実際には非常に単純です。特殊文字を16進コード値に変換するため、デコード機能は16進のASCを対応する文字に変換する必要があります。
- functionurldecode(ensst) 'urlデコード関数
- dimdestr
- dimc、i、v
- 破壊=
- fori = 1tolen(ensst)
- c = mid(ensst、i、1)
- ifc =%then
- v = eval(&h+mid(ensst、i+1,2))
- IFV <128then
- 破壊=破壊&chr(v)
- i = i+2
- それ以外
- ifisvalidhex(mid(ensst、i、3))その後
- ifisvalidhex(mid(ensst、i+3,3))
- v = eval(&h+mid(ensst、i+1,2)+mid(ensst、i+4,2))
- 破壊=破壊&chr(v)
- i = i+5
- それ以外
- v = eval(&h+mid(ensst、i+1,2)+cstr(hex(asc(mid(ensst、i+3,1)))))))))))
- 破壊=破壊&chr(v)
- i = i+3
- endif
- それ以外
- 破壊=破壊&c
- endif
- endif
- それ以外
- ifc =+then
- 破壊=破壊&
- それ以外
- 破壊=破壊&c
- endif
- endif
- 次
- urldecode =破壊
- エンド機能
- functionisvalidhex(str)
- isvalidhex = true
- str = ucase(str)
- iflen(str)<> 3thenisvalidhex = false:exitFunction
- ifleft(str、1)<>%thenisvalidhex = false:exitFunction
- c = mid(str、2,1)
- ifnot(((c> = 0)および(c <= 9))または((c> = a)および(c <= z)))thinisvalidhex = false:exitFunction
- c = mid(str、3,1)
- ifnot(((c> = 0)および(c <= 9))または((c> = a)および(c <= z)))thinisvalidhex = false:exitFunction
- エンド機能
テスト後にGB312形式でASPを使用することに問題はありません。