ASP は Request.QueryString でエンコードされた関数コードを読み取ります。ASP を学習している友人はそれを参照できます。 1. 純粋な中国語のパラメータをサポートしますか?a=山老熊
2. パラメータ gb2312 Urlencode エンコーディングをサポートします: ?a=%C9%EE%C9%BD%C0%CF%D0%DC
3. サポートパラメータ UTF-8 Urlencode エンコード: ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
次のようにコードをコピーします。
<%@LANGUAGE=VBSCRIPT コードページ=65001%>
<%
明示的なオプション
Const YXCMS_CHARSET = UTF-8
定数 YXCMS_CODEPAGE = 65001
Response.CharSet = UTF-8
セッション.コードページ = 65001
'テストURL
'?n1=深山の老熊&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86 %8A
「山の中の老熊」
'GBK: %C9%EE%C9%BD%C0%CF%D0%DC
'UTF-8: %E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
ディム URI、キー
URI = 新しい Cls_URI を設定します
'すべてのパラメータテストを出力します
URI.QueryString の各キーについて
Response.Write <span style='color:red'> & key & : </span> & URI.Get(key) & <hr/>
次
'単一の値を取得します
'URI.Get(名前)
-----------------------------------------------
'ASP UTF-8 エンコーディングが GBK UTF-8 エンコーディングを引き継ぎます
'著者: ディープ マウンテン オールド ベア QQ:81090
-----------------------------------------------
クラス Cls_URI
プライベート o_item、o_regx
プライベート url_query
プライベートサブクラス_初期化
o_item = CreateObject(Scripting.Dictionary) を設定します
o_item.CompareMode = 1
o_regx = 新しい正規表現を設定します
o_regx.パターン = ^(?:[/x00-/x7f]|[/xfc-/xff][/x80-/xbf]{5}|[/xf8-/xfb][/x80-/xbf]{4}|[/ xf 0-/xf7][/x80-/xbf]{3}|[/xe0-/xef][/x80-/xbf]{2}|[/xc0-/xdf][/x80-/xbf])+ $
セッション.コードページ = 936
url_query = リクエスト.サーバー変数(QUERY_STRING)
セッション.コードページ = 65001
'QUERY_STRING 文字列に基づいてシミュレートされた QueryString 値を生成します
薄暗い i、a、b、c、n、v
a = Split(url_query,&) : c = UBound(a)
i = 0 から c まで
b = 分割(a(i),=,2)
n = トリム(b(0) & )
UBound(b) < 1 の場合
v =
それ以外
v = b(1)
InStr(v,%) > 0 の場合、v = URLDecode(v)
終了の場合
n <> の場合
o_item(n) = v
終了の場合
次
o_regx = なしを設定します
エンドサブ
プライベートサブクラス_Terminate
o_item = なしを設定します
エンドサブ
'Request.QueryString をシミュレートする
パブリック関数 QueryString()
QueryString = o_item を設定します
終了機能
'Request.QueryString(n) をシミュレートします
パブリック関数 [GET](n)
o_item.Exists(n) の場合
[GET] = o_item.Item(n)
それ以外
[取得] =
終了の場合
終了機能
'エンコード形式
プライベート関数 URLDecode(ByVal s)
薄暗い sm、cs、r、o_regex
If Trim(s & ) = then
URLDecode = s : 関数の終了
終了の場合
s = エスケープ解除
o_regx.Test の場合、次に
cs=UTF-8
それ以外
cs=GBK
終了の場合
sm = CreateObject(Adodb.Stream) を設定します。
SMで
.Type = 2
.モード = 3
。開ける
.CharSet = ISO-8859-1
.WriteText
.位置 = 0
.CharSet = cs
URLDecode = .ReadText(-1)
。近い
で終わる
sm = 何も設定しない
終了機能
終了クラス
%>