不忘初心 方得始终 初心易得 始终难守

子目录utf-8博客乱码终于解决

经验小结 柒剑 浏览 0 评论

      困扰我七八年之久的博客乱码问题终于解决了!!!(应该是解决了吧

      遥想当年,第一次遇到不同编码(utf-8和gb2313)带来的问题,应该是2012年底,醉江湖开放前夕,扒皮了个页游模版来当江湖封面(也引起了江湖界用页游风首页的风潮)

      页游首页是utf-8编码,对接江湖数据时候出现乱码,把页游首页改成gb2312编码解决了问题。

      2015年,给江湖子站添加了个目录,主要是为了增加收录,最终选定了zblog(utf-8编码,当时没意思到埋下了乱码隐患)。(也带领了江湖站长界子目录博客风潮)

      2017年也在博客发布过关于zlbog乱码的文章,但是当时没解决。zblog谷歌浏览器乱码

后来也咨询过别人,说是和主站编码不一致导致,以为无解。就一直没去管这个问题,主要这个问题从始至终也就我一人遇见。直到本月27号,江湖玩家玄鬼反馈了

乱码.jpg

终于不是就我一个人遇到,也不再是偶发性事件,藉此常态化乱码情况,决定再研究研究找出解决方法。于是乎这两天就开始各种找资料,皇天不负有心人,终于让我给解决了。


问题的根本是:

ASP程序在同一个站点中,如果出现UTF-8编码的程序,又有GB2312的程序,在浏览完UTF-8编码的页面后,

再浏览GB2312的页面,GB2312编码的页面就会出现乱码.

出现这样的问题,可能是:当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,

当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面.所以会乱码.


网络上资料建议再 utf-8编码开头加上:<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>

但是zblog首页几个文件开头本就有 <%@ CODEPAGE=65001 %> ,加上那些反而冲突了,

然后注意到首页几个文件都有<!-- #include file="zb_users/c_option.asp" -->

解决:

在 c_option.asp 这个数据库连接文件(网站配置文件)开头加上<%Session.CodePage=65001%>乱码页面就正常了。

但是 c_option.asp 文件在后台有更新的时候会被自动覆盖,新生成文件开头又没有<%Session.CodePage=65001%>,难道以后每次更新都需要到服务器添加下这行代码?

最终,通过检索相关代码发现了 c_option.asp.html  这个模版文件,在这个模版文件开头加上<%Session.CodePage=65001%>,以后后台更新,新c_option.asp文件开头也自带<%Session.CodePage=65001%>。至此ZBLOG乱码问题完美解决。


后记:

在此过程中,咨询了现用模版作者:十五楼的鸟儿,几年前买的模版,现在还能耐心回答我。还表示要帮忙看下怎么在c_option.asp文件开头自动生成<%Session.CodePage=65001%>,不过他回我的时候,我自己已经解决了。


不同编码造成的乱码只存在有数据输出的动态页面,醉江湖有些静态页面也是utf-8,就一直没碰见乱码。


弯路:

一开始想着UTF-8是国际编码是不是能兼容gb2312,想把首页改utf-8,这样博客就不会乱码。(完全忘记了当初制作首页修改为gb2312的经历)

结果整来整去没搞定不说,一些正常的gb2312编码目录反而乱码了,其中一个加了 <%Session.CodePage=936%> 后马上正常了,另一个 过了一会也自动恢复了。

也可以两行都加上:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%Session.CodePage=936%>

第二行也可以添加到代码里





转载请注明:江湖传说 » 子目录utf-8博客乱码终于解决

与本文相关的文章

发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 验证码 (必填)

网友最新评论 (0)