Para resolver o problema de transmissão distorcida de parâmetros nas páginas gb2312 e utf-8 no mesmo site ASP, você só precisa seguir rigorosamente os quatro pontos a seguir. ① Use a codificação correta para o arquivo de página, gb2312 usa ANSI e utf-8 usa utf-8;
②.Defina o CODEPAGE correto no código ASP, use 936 para gb2312 e 65001 para utf-8;
③.Defina o conjunto de caracteres correto no código HTML, use gb2312 para gb2312 e use utf-8 para utf-8;
④ Codifique o valor do parâmetro passado usando a função de escape de js;
Código de exemplo
t1.asp (codificação ANSI):
Copie o código do código da seguinte forma:
<%@LANGUAGE=PÁGINA DE CÓDIGO VBSCRIPT=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>
<cabeça>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Página(gb2312)-vevb.com</title>
</head>
<corpo>
<tipo de script=texto/javascript>
document.write(<a href='t2.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</script>
<br/>
<%
Response.Write(Request.QueryString(palavra-chave))
%>
</body>
</html>
t2.asp (codificação utf-8):
Copie o código do código da seguinte forma:
<%@LANGUAGE=PÁGINA DE CÓDIGO 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>
<cabeça>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Página(utf-8)-vevb.com</title>
</head>
<corpo>
<tipo de script=texto/javascript>
document.write(<a href='t1.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</script>
<br/>
<%
Response.Write(Request.QueryString(palavra-chave))
%>
</body>
</html>