เพื่อแก้ปัญหาการส่งพารามิเตอร์ที่อ่านไม่ออกในหน้า gb2312 และ utf-8 ภายใต้ไซต์ ASP เดียวกัน คุณจะต้องปฏิบัติตามสี่จุดต่อไปนี้อย่างเคร่งครัดเท่านั้น
1. ใช้การเข้ารหัสที่ถูกต้องสำหรับไฟล์เพจ gb2312 ใช้ ANSI และ utf-8 ใช้ utf-8
2. ตั้งค่า CODEPAGE ที่ถูกต้องในโค้ด ASP ใช้ 936 สำหรับ gb2312 และ 65001 สำหรับ utf-8
3. ตั้งค่าชุดอักขระที่ถูกต้องในโค้ด HTML ใช้ gb2312 สำหรับ gb2312 และใช้ utf-8 สำหรับ utf-8
④ เข้ารหัสค่าพารามิเตอร์ที่ส่งผ่านโดยใช้ฟังก์ชัน Escape ของ js
รหัสตัวอย่าง
t1.asp (การเข้ารหัส ANSI):
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%เซสชัน.CodePage=936%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>หน้า(gb2312)-vevb.com</title>
</หัว>
<ร่างกาย>
<script type="text/javascript">
document.write("<a href='t2.asp?keyword=" + Escape("木子屋") + "'>木子屋</a>");
</สคริปต์>
<br/>
-
Response.Write(Request.QueryString("คำหลัก"))
-
</ร่างกาย>
</html>
t2.asp (การเข้ารหัส utf-8):
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%เซสชัน.CodePage=65001%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>หน้า(utf-8)-vevb.com</title>
</หัว>
<ร่างกาย>
<script type="text/javascript">
document.write("<a href='t1.asp?keyword=" + Escape("木子屋") + "'>木子屋</a>");
</สคริปต์>
<br/>
-
Response.Write(Request.QueryString("คำหลัก"))
-
</ร่างกาย>
</html>