Чтобы решить проблему искаженной передачи параметров на страницах gb2312 и utf-8 на одном сайте ASP, вам нужно всего лишь строго следовать следующим четырем пунктам. ① Используйте правильную кодировку для файла подкачки: gb2312 использует ANSI, а utf-8 использует utf-8;
②. Установите правильную КОДОВУЮ СТРАНИЦУ в коде ASP, используйте 936 для gb2312 и 65001 для utf-8;
③.Установите правильную кодировку в HTML-коде, используйте gb2312 для gb2312 и используйте utf-8 для utf-8;
④ Закодируйте переданное значение параметра, используя escape-функцию js;
Пример кода
t1.asp (кодировка ANSI):
Скопируйте код кода следующим образом:
<%@LANGUAGE=КОДОВАЯ СТРАНИЦА 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>
<голова>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Страница(gb2312)-vevb.com</title>
</голова>
<тело>
<тип сценария=текст/javascript>
document.write(<a href='t2.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</скрипт>
<br/>
<%
Response.Write(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; charset=utf-8 />
<title>Страница(utf-8)-vevb.com</title>
</голова>
<тело>
<тип сценария=текст/javascript>
document.write(<a href='t1.asp?keyword= + escape(木子屋) + '>木子屋</a>);
</скрипт>
<br/>
<%
Response.Write(Request.QueryString(ключевое слово))
%>
</тело>
</html>