D-haha 的情侣博客 » 网站日志 » 修正 LBS^2.0.304 导致的一个乱码BUG
在打开LBS并进入文章内容页,或登陆等这样的操作后,再进入同一站点下非LBS页面,会发现其静态部文字,和通过ASP运行后输出的动态文字分别出现两种 编码,GB2312和UTF-8。除非该页和LBS同时使用GB2312编码。重启阅览器后再阅览该非LBS页面,一切正常,但再进入LBS并打开文章页 等,BUG又出现了。(如果您遇上过,我一说就明白。)
分析:
1. 我把LBS改成GB2312的,再阅览其它GB2312页没问题,UTF-8页面则出乱码,但只要LBS是UTF-8的,不管其它页是GB2312还是UTF-8都会出问题。
2. 重启阅览器后BUG消失,再打开LBS并运行其中网页BUG又出现,这很像Session的特征。
3. 运行LBS再运行同一站点下的PJblog,没有BUG。
看来这是GB2312和UTF-8两种编码之间切换不完全导致的, 具体原因为明, 但分别把下现两段编码加到两种不同文件的ASP头上, 一切都正常了.
加到UTF-8文件:
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.Charset = "UTF-8" %>
<%
Response.Buffer=true;
Session.CodePage=65001;
Session.Timeout=30;
Server.ScriptTimeOut = 90
%>
GB2312文件:
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% Response.Charset = "GB2312" %>
<%
Response.Buffer=true;
Session.CodePage=936;
Session.Timeout=30;
Server.ScriptTimeOut = 90
%>
最关键的是加入了中间那一行指定Session的Code。
我是通过比较法来查出问题和找出解决办法的。至于此BUG的实质原因并不很清楚。
« 新主页 RSS Reader 核心部分基本完成还忘了考虑Spider的问题 »
发表评论: