Um das Problem der verstümmelten Parameterübertragung auf GB2312- und UTF-8-Seiten unter derselben ASP-Site zu lösen, müssen Sie nur die folgenden vier Punkte strikt befolgen.
① Verwenden Sie die richtige Codierung für die Auslagerungsdatei, gb2312 verwendet ANSI und utf-8 verwendet utf-8;
②.Stellen Sie die richtige CODEPAGE im ASP-Code ein, verwenden Sie 936 für gb2312 und 65001 für utf-8;
③.Stellen Sie den richtigen Zeichensatz im HTML-Code ein, verwenden Sie gb2312 für gb2312 und verwenden Sie utf-8 für utf-8;
④ Codieren Sie den übergebenen Parameterwert mit der Escape-Funktion von js.
Beispielcode
t1.asp (ANSI-Kodierung):
Kopieren Sie den Codecode wie folgt:
<%@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">
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Seite(gb2312)-vevb.com</title>
</head>
<Körper>
<script type="text/javascript">
document.write("<a href='t2.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("keyword"))
%>
</body>
</html>
t2.asp (utf-8-Kodierung):
Kopieren Sie den Codecode wie folgt:
<%@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">
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Seite(utf-8)-vevb.com</title>
</head>
<Körper>
<script type="text/javascript">
document.write("<a href='t1.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("keyword"))
%>
</body>
</html>