ASP membaca kode fungsi yang dikodekan oleh Request.QueryString. Teman yang sedang mempelajari asp dapat merujuknya. 1. Mendukung parameter karakter Cina murni?a=山老熊
2. Mendukung parameter gb2312 pengkodean Urlencode: ?a=%C9%EE%C9%BD%C0%CF%D0%DC
3. Mendukung parameter pengkodean UTF-8 Urlencode: ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Copy kode kodenya sebagai berikut:
<%@LANGUAGE=KODE VBSCRIPT=65001%>
<%
Opsi Eksplisit
Konstanta YXCMS_CHARSET = UTF-8
Konstanta YXCMS_CODEPAGE = 65001
Respon.CharSet = UTF-8
Sesi.CodePage = 65001
'Uji URL
'?n1=Beruang Tua di Pegunungan Dalam&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86 %8A
'Beruang Tua di Pegunungan
'GBK: %C9%EE%C9%BD%C0%CF%D0%DC
'UTF-8: %E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Redupkan URI, kunci
Tetapkan URI = Cls_URI baru
'Keluarkan semua pengujian parameter
Untuk Setiap kunci Di URI.QueryString
Respons.Tulis <span style='color:red'> & key & : </span> & URI.Get(key) & <hr/>
Berikutnya
'Dapatkan satu nilai
'URI.Dapatkan (nama)
'----------------------------------------------
'Pengkodean ASP UTF-8 mengambil alih pengkodean GBK UTF-8
'Penulis: Beruang Tua Deep Mountain QQ:81090
'----------------------------------------------
Kelas Cls_URI
O_item pribadi,o_regx
Url_query pribadi
Sub Kelas Pribadi_Inisialisasi
Setel o_item = CreateObject(Scripting.Dictionary)
o_item.CompareMode = 1
Setel o_regx = Regexp Baru
o_regx.Pola = ^(?:[/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])+ $
Sesi.CodePage = 936
url_query = Permintaan.ServerVariables(QUERY_STRING)
Sesi.CodePage = 65001
'Hasilkan nilai QueryString yang disimulasikan berdasarkan string QUERY_STRING
Redupkan i,a,b,c,n,v
a = Pisah(url_query,&) : c = UBound(a)
Untuk i = 0 Ke c
b = Pisahkan(a(i),=,2)
n = Potong(b(0) & )
Jika UBound(b) < 1 Maka
v =
Kalau tidak
v = b(1)
Jika InStr(v,%) > 0 Maka v = URLDecode(v)
Akhiri Jika
Jika n <> Lalu
o_item(n) = v
Akhiri Jika
Berikutnya
Setel o_regx = Tidak ada
Akhiri Sub
Sub Kelas Pribadi_Terminate
Setel o_item = Tidak Ada
Akhiri Sub
'Simulasikan Permintaan.QueryString
Fungsi Publik QueryString()
Setel QueryString = o_item
Fungsi Akhir
'Simulasikan Permintaan.QueryString(n)
Fungsi Publik [GET](n)
Jika o_item.Ada(n) Lalu
[DAPATKAN] = o_item.Item(n)
Kalau tidak
[DAPATKAN] =
Akhiri Jika
Fungsi Akhir
'Format pengkodean
URLDecode Fungsi Pribadi (ByVal s)
Redupkan sm,cs,r,o_regex
Jika Potong(s & ) = Maka
URLDecode = s : Keluar dari Fungsi
Akhiri Jika
s = tidak lolos
Jika o_regx.Test Kemudian
cs=UTF-8
Kalau tidak
cs=GBK
Akhiri Jika
Setel sm = CreateObject(Adodb.Stream)
Dengan sm
.Jenis = 2
.Modus = 3
.Membuka
.CharSet = ISO-8859-1
.WriteText s
.Posisi = 0
.CharSet = cs
URLDecode = .ReadText(-1)
.Menutup
Akhiri Dengan
Setel sm = Tidak ada
Fungsi Akhir
Kelas Akhir
%>