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

①.页面文件使用正确的编码,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>

(0)

相关推荐

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

    ①.页面文件使用正确的编码,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&

  • linux下因为系统编码问题造成乱码的快速解决方法

    最近一段时间遇到一些润乾的应用在linux系统下面乱码的问题,最后检查后都发现是客户的linux系统默认编码设置的不正确造成的,这种原因造成乱码的现象一般都是程序里面写死了的中文字符能正常展现,但是从数据库中取出来的或者从程序中读出来的中文字符就会出现乱码. 下面就介绍一下由于linux系统编码设置不正确造成润乾报表应用乱码问题的解决办法. 第一步:检查linux的系统编码. 检查linux的系统编码,确定系统是否支持中文.在linux系统的终端中输入命令:locale,就会看到打印出的系统编码

  • win7下mysql6.x出现中文乱码的完美解决方法

    1.在命令行里停止MySQL服务:net stop mysql 2.修改mysql安装目录下的my,ini,将default-character-set=latin改为default-character-set=gbk(有几个改几个,改成utf-8我不知道可不可以) 3.将刚刚修改好的my.ini复制到C:\Windows目录下,覆盖掉. 4.命令行里启动mysql服务:net start mysql,进入mysql 5.输入:show variables like 'char%';看看哪些是l

  • IE下Ajax提交乱码的快速解决方法

    哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

  • 关于Linux操作系统下终端乱码的完美解决方法

    初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,先看看各类乱码是怎么形成的. 中文字符乱码 这种情况一般是安装了中文控制端,但没有启用中文应用造成的.只需要启动相应软件即可,如zhcon.或者是启用了相应软件,但字符集不对,需设置相应字符集,例如export LANG=zh_CN.UTF-8 ORACLE安装界面乱码 虽说ORACLE支持多国语言,会根据环境变量自动选择字符集,但中文安装好像还有问题,不过1

  • php中json_encode处理gbk与gb2312中文乱码问题的解决方法

    本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,具体方法如下: 1.json_encode()中文在gbk/gb2312中对中文返回为null $arr = array ( array ( 'catid' => '4', 'catname' => 'www.jb51.net', 'meta_title' => '我们' ) ); echo json_encode($arr); 运行结果: [{"catid":"4&qu

  • ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明

    出现这样的问题是当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面所以会乱码. 为了这个问题烦了我一个早上,终于的蓝色理想上得到解决. 首先让我们来了解一下Session对象提供了四个属性. 1.CodePage 读/写.整型. 定义用于在浏览器中显示页内容的代码页(Code Page).代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页.例如,ANSI代码页 1252用于美国

  • asp UTF-8 乱码问题的解决方法小结

    这个是网页编码的问题.中文一般采用的是gb2312这样的话显示中文基本上不会出现乱码.但是有时候我们用的是一种国际上通用的utf-8格式.如果utf-8格式人不是很了解的话是容易出现乱码的. 有许多朋友问过我,为什么在ASP里指定了codepage为65001还经常显示乱码.才子在这里将这个问题详细解释一下,以免很多朋友再走弯路,甚至排斥UTF-8. asp网页utf8乱码如果你还不知道UTF-8是什么东东,那才子建议你先去搜索一下UTF-8的相关资料吧. UTF-8编码之所以被越来越多的人接受

  • ASP.NET MVC中解析淘宝网页出现乱码问题的解决方法

    最近在解析淘宝中商品的信息,结果出现乱码,如: 原因就是中文字符格式出现冲突,ASP.NET MVC 默认采用utf-8,但是淘宝网页采用gbk. 在网上找了一下,最常用的解决方法就是修改web.config: < system.web> ...... < globalization requestEncoding="gbk" responseEncoding="gbk" culture="zh-CN" fileEncoding

  • asp.net中不能在DropDownList中选择多个项 原因分析及解决方法

    示例代码: 复制代码 代码如下: BulkStockBll bll = new BulkStockBll(); DataSet ds = bll.GetBulkStock(); this.ddl_BulkStock.DataTextField = "Name" ; this.ddl_BulkStock.DataValueField = "ID" ; this.ddl_BulkStock.DataSource = ds; this.ddl_BulkStock.Data

随机推荐