لحل مشكلة نقل المعلمات المشوهة في صفحات 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; charset=gb2312" />
<title>الصفحة(gb2312)-vevb.com</title>
</الرأس>
<الجسم>
<نوع البرنامج النصي = "نص/جافا سكريبت">
document.write("<a href='t2.asp?keyword=" + escape("النسخة الأصلية") + "'>النسخة الأصلية</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("الكلمة الرئيسية"))
%>
</الجسم>
</html>
t2.asp (ترميز UTF-8):
انسخ رمز الكود كما يلي:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="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; charset=utf-8" />
<title>الصفحة(utf-8)-vevb.com</title>
</الرأس>
<الجسم>
<نوع البرنامج النصي = "نص/جافا سكريبت">
document.write("<a href='t1.asp?keyword=" + escape("النسخة الأصلية") + "'>النسخة الأصلية</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("الكلمة الرئيسية"))
%>
</الجسم>
</html>