ASP lit le code de fonction codé par Request.QueryString. Les amis qui apprennent l'ASP peuvent s'y référer. 1. Prend en charge le paramètre de caractères chinois purs ?a=山老熊
2. Supporte le paramètre d'encodage Urlencode gb2312 : ?a=%C9%EE%C9%BD%C0%CF%D0%DC
3. Paramètre de prise en charge de l'encodage Urlencode UTF-8 : ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Copiez le code comme suit :
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%
Option explicite
Const YXCMS_CHARSET = UTF-8
Const YXCMS_CODEPAGE = 65001
Réponse.CharSet = UTF-8
Session.CodePage = 65001
'Tester l'URL
'?n1=Vieil Ours dans les Montagnes Profondes&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86 %8A
'Vieil ours dans les montagnes
'GBK : %C9%EE%C9%BD%C0%CF%D0%DC
'UTF-8 : %E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Faible URI, clé
Définir l'URI = nouveau Cls_URI
'Sortie de tous les tests de paramètres
Pour chaque clé dans URI.QueryString
Response.Write <span style='color:red'> & clé & : </span> & URI.Get(key) & <hr/>
Suivant
'Obtenir une valeur unique
'URI.Get(nom)
'---------------------------------------------
'L'encodage ASP UTF-8 prend le relais de l'encodage GBK UTF-8
'Auteur : Vieux ours de Deep Mountain QQ : 81090
'---------------------------------------------
Classe Cls_URI
o_item privé, o_regx
URL_query privée
Sous-classe privée_Initialize
Définir o_item = CreateObject (Scripting.Dictionary)
o_item.CompareMode = 1
Définir o_regx = Nouvelle expression rationnelle
o_regx.Pattern = ^(?:[/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])+ $
Session.CodePage = 936
url_query = Requête.ServerVariables (QUERY_STRING)
Session.CodePage = 65001
'Générer une valeur QueryString simulée basée sur la chaîne QUERY_STRING
Dim i,a,b,c,n,v
a = Split(url_query,&) : c = UBound(a)
Pour i = 0 À c
b = Diviser(a(i),=,2)
n = Couper(b(0) & )
Si UBound(b) < 1 Alors
v =
Autre
v = b(1)
Si InStr(v,%) > 0 Alors v = URLDecode(v)
Fin si
Si n <> Alors
o_élément(n) = v
Fin si
Suivant
Définir o_regx = Rien
Fin du sous-marin
Sous-classe privée_Terminate
Définir o_item = Rien
Fin du sous-marin
'Simuler Request.QueryString
Fonction publique QueryString()
Définir QueryString = o_item
Fonction de fin
'Simuler Request.QueryString(n)
Fonction publique [GET](n)
Si o_item.Exists(n) Alors
[GET] = o_item.Item(n)
Autre
[OBTENIR] =
Fin si
Fonction de fin
'Format d'encodage
Fonction privée URLDecode (ByVal s)
Dim sm,cs,r,o_regex
Si Trim(s & ) = Alors
URLDecode = s : fonction de sortie
Fin si
s = échapper(s)
Si o_regx.Test(s) Alors
cs=UTF-8
Autre
cs=GBK
Fin si
Définir sm = CreateObject (Adodb.Stream)
Avec petit
.Type = 2
.Mode = 3
.Ouvrir
.CharSet = ISO-8859-1
.WriteText s
.Position = 0
.CharSet = cs
URLDecode = .ReadText(-1)
.Fermer
Terminer par
Définir sm = Rien
Fonction de fin
Fin du cours
%>