Untuk mengatasi masalah transmisi parameter yang kacau di halaman gb2312 dan utf-8 di bawah situs ASP yang sama, Anda hanya perlu mengikuti empat poin berikut dengan ketat.
①. Gunakan pengkodean yang benar untuk file halaman, gb2312 menggunakan ANSI, dan utf-8 menggunakan utf-8;
②.Atur CODEPAGE yang benar dalam kode ASP, gunakan 936 untuk gb2312, dan 65001 untuk utf-8;
③.Atur rangkaian karakter yang benar dalam kode HTML, gunakan gb2312 untuk gb2312, dan gunakan utf-8 untuk utf-8;
④. Enkode nilai parameter yang diteruskan menggunakan fungsi escape js;
Kode sampel
t1.asp (pengkodean ANSI):
Copy kode kodenya sebagai berikut:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Sesi.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">
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312" />
<title>Halaman(gb2312)-vevb.com</title>
</kepala>
<tubuh>
<skrip tipe="teks/javascript">
document.write("<a href='t2.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</skrip>
<br/>
<%
Respon.Tulis(Permintaan.QueryString("kata kunci"))
%>
</tubuh>
</html>
t2.asp (pengkodean utf-8):
Copy kode kodenya sebagai berikut:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Sesi.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">
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=utf-8" />
<title>Halaman(utf-8)-vevb.com</title>
</kepala>
<tubuh>
<skrip tipe="teks/javascript">
document.write("<a href='t1.asp?keyword=" + escape("木子屋") + "'>木子屋</a>");
</skrip>
<br/>
<%
Respon.Tulis(Permintaan.QueryString("kata kunci"))
%>
</tubuh>
</html>