以文本方式查看主题 - ╋艺 镇╋ (http://zyzsky.com/bbs/index.asp) -- ┣◇艺镇解释官 (http://zyzsky.com/bbs/list.asp?boardid=26) ---- 同一网站UTF-8与GB2312两种编码页面避免乱码的方法 (http://zyzsky.com/bbs/dispbbs.asp?boardid=26&id=4365) |
-- 作者:admin -- 发布时间:2014/8/18 13:52:42 -- 同一网站UTF-8与GB2312两种编码页面避免乱码的方法 以前一直用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设置方法(da 复制内容到剪贴板 程序代码 <% 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("da %> GB2312设置方法(da 复制内容到剪贴板 程序代码 <% 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("da %> http://blog.163.com/hlyluck@126/blog/static/51369005200910511595035/ |
-- 作者:admin -- 发布时间:2014/8/18 13:52:56 -- 前两天将DV换成了UTF-8版本,发现访问论坛时经常乱码。 解决方法: 将PJBlog的footer.asp文件底部的Session.CodePage=936这一句删除。 可能是当时PJBlog为了兼容同一站点的其它gb2312的程序而在程序结束时进行代码切换。 从而导致UTF-8的DV论坛出现乱码。 http://bbs.dvbbs.net/dispbbs.asp?BoardID=8&ID=1504352 |