要解決ASP同一站點下gb2312和utf-8頁面傳遞參數亂碼問題,只需嚴格做到以下4點即可。
①.頁面文件使用正確的編碼,gb2312使用ANSI,utf-8使用utf-8;
②.ASP代碼中設置正確的CODEPAGE,gb2312使用936,utf-8使用65001;
③.HTML代碼中設置正確的charset,gb2312使用gb2312,utf-8使用utf-8;
④.將傳遞的參數值使用js的escape函數進行編碼;
示例代碼
t1.asp(ANSI編碼):
<%@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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>Page(gb2312)-jb51.net</title> </head> <body> <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編碼):
<%@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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Page(utf-8)-jb51.net</title> </head> <body> <script type="text/javascript"> document.write("<a href='t1.asp?keyword=" + escape("木子屋") + "'>木子屋</a>"); </script> <br/> <% Response.Write(Request.QueryString("keyword")) %> </body> </html>
新聞熱點
疑難解答