同一Asp站点,UTF-8与GB2312两种编码的干扰问题
2009-8-15 - - 网页设计 - Views

这是以前用PJ-Blog时写的一篇旧日志,由于换程序的缘故,很想有个新开始,所以一直不敢炒冷饭……今天遇上一个朋友突然问起这个问题,觉得可能还真有点价值,故重贴出来。希望对大家有点帮助!
为了丰富网站内容,我曾经写过一个在线电影收看系统和一个百度音乐小偷采集(编码都是:GB2312),但由于我使用的博客的源程序采用的字符集是UTF-8编码,结果出现了异常状况:当我登录博客后台以后,再跳转到我的影视和音乐程序浏览时,这两个程序就相应出现了乱码!怎么回事呢?
其实,通过转换我的博客或其他两个程序的编码,使其达成统一就可以解决这个问题,但是我觉得这样做太麻烦了。于是,我在网上搜索了一些相关方面的技巧,总算工夫不负有心人,让我研究出了解决办法,这里发出来与大家共享。
先了解一点基本的东西:
<%@ codepage=65001%>UTF-8
<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=437 %>美式英语
<%@ codepage=932 %>日文
<%@ codepage=949 %>韩文
<%@ codepage=866 %>俄文
上面这段代码中,codepage指定了IIS按什么编码来读取传递过来的串串(表单提交,地址栏传递等)。为什么会出现乱码呢?还是以UTF-8和GB2312为例:当你浏览用UTF-8编码书写的网站程序时,服务器就默认用UTF-8的引擎来输出html,而当你再接着使用同一窗口,跳转浏览用GB2312编码书写的网站程序时,服务器就还是默认用UTF-8来输出本应是GB2312编码的html,所以产生了乱码。这个问题,应该如何解决呢?我所采用的最简便的方法就是:
1.在UTF-8编码书写的网站程序包里找出包文件,(如conn.asp,但是要注意conn.asp必须是在第一行调用)在最上面加上下面这段代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>
2.在GB2312编码书写的网站程序包里找出包文件,(如conn.asp,但是要注意conn.asp必须是在第一行调用)在最上面加上下面这段代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
说明:“Session.CodePage”指定的是服务器用哪种编码来输出,有了它的声明,服务器就不会用默认的编码引擎来输出了。OK,快试试吧。
关键词 // Asp编码 UTF-8 GB2312 编码干扰
出处:低一度,链接:http://www.diyidu.cn/post/code_gr.html
随机推荐
to "同一Asp站点,UTF-8与GB2312两种编码的干扰问题"
-
#1 爱好者博客 回复该留言 2010-1-29 10:36:33桶哥,我是看不懂哈,等你的主题光大了,我跟着占点友情链接的便宜。恩,也就这么点心愿了。
-
原来那个65001之类的东西,就是这样来的。我折腾插件,还以为是随意搞上去的序列号呢~
-
我看懂了,明白了。折腾插件可以有点儿门道了~



