╋艺 镇╋╋论坛の释疑╋┣◇艺镇解释官 → 同一网站UTF-8与GB2312两种编码页面避免乱码的方法


  共有13869人关注过本帖树形打印复制链接

主题:同一网站UTF-8与GB2312两种编码页面避免乱码的方法

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
同一网站UTF-8与GB2312两种编码页面避免乱码的方法  发帖心情 Post By:2014/8/18 13:52:42 [只看该作者]

 

以前一直用PJBLOG,现在使用独立主机安装了一个OBLOG。结果在从PJ转向O的页面时就会出现乱码,直接打开O,或者先打开O然后转向PJ都没有问题,只有从PJ转向O就会出现乱码。

在网上搜索了一些方法,一般的没有太大效果。总结了一些出现乱码的原因有如下几种可能:

1、GB2312页面没有在头部设置charset=GB2312

2、如果设置了charset=GB2312 ,尝试在ASP源码头部加上

复制内容到剪贴板 程序代码

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

    其中 936为GB2312 ; 65001为UTF-8

3、因为程序没有设置读取数据库时所使用的编码类型,所以打开数据库时就会直接读取上一次所使用的编码类型。如先打开UTF-8页面,数据库按照UTF-8读取数据库内容。而在此时您再打开GB2312页面时,因为没有设置服务器按照刚刚使用过的编码类型即UTF-8读取数据库。这就造成打开的页面内容除数据库内容外正常显示,所有数据库内容显示乱码的原因的。

    而我网站上所出现的问题也就是第三种,因为一般比较成熟的程序代码都会设置前两项,而第三项是大部分程序设计人员所忽略的。

解决方法也很简单只要在乱码的那个程序源代码设置一下就行了:

UTF-8设置方法(data/data.mdb为数据库地址)

复制内容到剪贴板 程序代码

<%

response.codepage=65001

response.charset="UTF-8"

set conn = server.CreateObject("adodb.connection")

on error resume next

conn.Open "driver={microsoft access driver (*.mdb)}; dbq=" & server.MapPath("data/data.mdb")

%>

GB2312设置方法(data/data.mdb为数据库地址)

复制内容到剪贴板 程序代码

<%

response.codepage=936

response.charset="GB2312"

set conn = server.CreateObject("adodb.connection")

on error resume next

conn.Open "driver={microsoft access driver (*.mdb)}; dbq=" & server.MapPath("data/data.mdb")

%>


http://blog.163.com/hlyluck@126/blog/static/51369005200910511595035/



  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部
美女呀,离线,留言给我吧!
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27521 威望:0 精华:7 注册:2003/12/30 16:34:32
  发帖心情 Post By:2014/8/18 13:52:56 [只看该作者]

 

前两天将DV换成了UTF-8版本,发现访问论坛时经常乱码。
最后检查发现原来是与PJBlog共存出现的问题。

解决方法:

将PJBlog的footer.asp文件底部的Session.CodePage=936这一句删除。

可能是当时PJBlog为了兼容同一站点的其它gb2312的程序而在程序结束时进行代码切换。

从而导致UTF-8的DV论坛出现乱码。


http://bbs.dvbbs.net/dispbbs.asp?BoardID=8&ID=1504352



  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部