baidu
互联网 54BQ.com
09-07
11

同一网站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设置方法(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")
%>


测试地址
UTF-8页面 http://www.54bq.com/boke/
GB2312页面 http://www.54bq.com/dz/
测试方法打开UTF-8页面,然后在该窗口处输入GB2312页面地址回车,刷新一次不乱码为正常,乱码则表明错误存在需要修复。。


[本日志由 shmshz 于 2010-03-03 10:35 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 同一网站 UTF-8 GB2312 编码 乱码 方法 ACCESS 数据库
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
回复回复shmshz[2009-10-14 10:41 AM| del]
网络上有些人说UTF-8容易出现乱码,其实不是这样的,国外好些网站都是UTF-8编码的;
GB2312编码格式的网页大小稍微大一点,而且不支持一些外语,比如日语、韩语、德语等等就会出现乱码;
UTF-8编码格式的网页大小稍微小一点,而且支持大部分语言,包括少数民族语言(不过电脑必须安装该语言的字体才能显示)。
当您的网站有两种不同编码时参照本文即可避免乱码出现!
发表评论
昵 称:
邮 箱:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.