ASP อ่านโค้ดฟังก์ชันที่เข้ารหัสโดย Request.QueryString เพื่อนที่กำลังเรียนรู้ ASP สามารถอ้างอิงถึงมันได้ 1. รองรับพารามิเตอร์อักขระภาษาจีนล้วน?a=yama老熊
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%>
-
ตัวเลือกที่ชัดเจน
ค่าคงที่ YXCMS_CHARSET = UTF-8
ค่าคงที่ YXCMS_CODEPAGE = 65001
Response.CharSet = UTF-8
เซสชั่น.CodePage = 65001
'ทดสอบ URL
'?n1=หมีเฒ่าในหุบเขาลึก&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86 %8เอ
'หมีเฒ่าในภูเขา
'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
'ผู้เขียน: Deep Mountain Old Bear QQ:81090
-
คลาส Cls_URI
ส่วนตัว o_item,o_regx
url_query ส่วนตัว
คลาสย่อยส่วนตัว_เริ่มต้น
ตั้ง o_item = CreateObject (Scripting.Dictionary)
o_item.CompareMode = 1
ตั้ง o_regx = Regexp ใหม่
o_regx.รูปแบบ = ^(?:[/x00-/x7f]|[/xfc-/xff][/x80-/xbf]{5}|[/xf8-/xfb][/x80-/xbf]{4}|[/ เอ็กซ์เอฟ 0-/xf7][/x80-/xbf]{3}|[/xe0-/xef][/x80-/xbf]{2}|[/xc0-/xdf][/x80-/xbf])+ $
เซสชั่น.CodePage = 936
url_query = คำขอ ServerVariables (QUERY_STRING)
เซสชั่น.CodePage = 65001
'สร้างค่า QueryString จำลองตามสตริง QUERY_STRING
หรี่ i,a,b,c,n,v
a = แยก(url_query,&) : c = UBound(a)
สำหรับฉัน = 0 ถึงค
b = แยก(a(i),=,2)
n = ตัดแต่ง(b(0) & )
ถ้า UBound(b) < 1 แล้ว
วี =
อื่น
โวลต์ = ข(1)
ถ้า InStr(v,%) > 0 แล้ว v = URLDecode(v)
สิ้นสุดถ้า
ถ้า n <> แล้ว
o_item(n) = โวลต์
สิ้นสุดถ้า
ต่อไป
ตั้ง o_regx = ไม่มีเลย
จบหมวดย่อย
Class_Terminate ย่อยส่วนตัว
ตั้งค่า o_item = ไม่มีเลย
จบหมวดย่อย
'จำลองคำขอ QueryString
QueryString ฟังก์ชั่นสาธารณะ ()
ตั้งค่า QueryString = o_item
ฟังก์ชันสิ้นสุด
'จำลองคำขอ QueryString (n)
ฟังก์ชั่นสาธารณะ [GET](n)
ถ้า o_item.Exists(n) แล้ว
[GET] = o_item.Item(n)
อื่น
[รับ] =
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
'รูปแบบการเข้ารหัส
ฟังก์ชั่นส่วนตัว URLDecode (ByVal s)
หรี่ sm,cs,r,o_regex
ถ้า Trim(s & ) = จากนั้น
URLDecode = s : ออกจากฟังก์ชัน
สิ้นสุดถ้า
s = หลีกเลี่ยงไม่ได้
ถ้า o_regx.Test(s) แล้ว
cs=UTF-8
อื่น
cs=GBK
สิ้นสุดถ้า
ตั้ง sm = CreateObject(Adodb.Stream)
กับเอสเอ็ม
.ประเภท = 2
.โหมด = 3
.เปิด
.ชุดอักขระ = ISO-8859-1
.เขียนข้อความ
.ตำแหน่ง = 0
.CharSet = ซีเอส
URLDecode = .ReadText(-1)
.ปิด
จบด้วย
ตั้ง sm = ไม่มีเลย
ฟังก์ชันสิ้นสุด
จบคลาส
-