ASP同一站点下gb2312和utf-8页面传递参数乱码的终极解决方法

ASP教程 2025-08-08

要解决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.**w*3.org/1999/xhtml" >

< head >

< meta http-equiv="Content-Type" content="text/html; charset=gb2312" / >

< title >Page(gb2312)-vevb.com< /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.**w*3.org/1999/xhtml" >

< head >

< meta http-equiv="Content-Type" content="text/html; charset=utf-8" / >

< title >Page(utf-8)-vevb.com< /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 >