لحل مشكلة نقل المعلمات المشوهة في صفحات gb2312 وutf-8 ضمن نفس موقع ASP، ما عليك سوى اتباع النقاط الأربع التالية بدقة. ①. استخدم الترميز الصحيح لملف الصفحة، ويستخدم gb2312 ANSI، ويستخدم utf-8 utf-8؛
②. قم بتعيين CODEPAGE الصحيح في رمز ASP، واستخدم 936 لـ gb2312، و65001 لـ utf-8؛
③. قم بتعيين مجموعة الأحرف الصحيحة في كود HTML، واستخدم gb2312 لـ gb2312، واستخدم utf-8 لـ utf-8؛
④. قم بتشفير قيمة المعلمة التي تم تمريرها باستخدام وظيفة الهروب لـ js؛
رمز العينة
t1.asp (ترميز ANSI):
انسخ رمز الكود كما يلي:
<%@LANGUAGE=VBSCRIPT CODEPAGE=936%>
<%Session.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;
<title>الصفحة(gb2312)-vevb.com</title>
</الرأس>
<الجسم>
<نوع البرنامج النصي=نص/جافا سكريبت>
document.write(<a href='t2.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</script>
<br/>
<%
الاستجابة.الكتابة(Request.QueryString(الكلمة الرئيسية))
%>
</الجسم>
</html>
t2.asp (ترميز UTF-8):
انسخ رمز الكود كما يلي:
<%@LANGUAGE=صفحة كود VBSCRIPT=65001%>
<%Session.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;
<title>الصفحة(utf-8)-vevb.com</title>
</الرأس>
<الجسم>
<نوع البرنامج النصي=نص/جافا سكريبت>
document.write(<a href='t1.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</script>
<br/>
<%
الاستجابة.الكتابة(Request.QueryString(الكلمة الرئيسية))
%>
</الجسم>
</html>