Pour résoudre le problème de la transmission de paramètres tronqués dans les pages gb2312 et utf-8 sous le même site ASP, il vous suffit de suivre strictement les quatre points suivants.
①. Utilisez le codage correct pour le fichier d'échange, gb2312 utilise ANSI et utf-8 utilise utf-8 ;
②.Définissez le CODEPAGE correct dans le code ASP, utilisez 936 pour gb2312 et 65001 pour utf-8 ;
③.Définissez le jeu de caractères correct dans le code HTML, utilisez gb2312 pour gb2312 et utilisez utf-8 pour utf-8 ;
④. Encodez la valeur du paramètre transmise à l'aide de la fonction d'échappement de js ;
Exemple de code
t1.asp (codage ANSI) :
Copiez le code comme suit :
<%@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">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<titre>Page(gb2312)-vevb.com</titre>
</tête>
<corps>
<script type="text/javascript">
document.write("<a href='t2.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("mot-clé"))
%>
</corps>
</html>
t2.asp (encodage utf-8) :
Copiez le code comme suit :
<%@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">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<titre>Page(utf-8)-vevb.com</titre>
</tête>
<corps>
<script type="text/javascript">
document.write("<a href='t1.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</script>
<br/>
<%
Response.Write(Request.QueryString("mot-clé"))
%>
</corps>
</html>