access数据库编码转换:将将UTF8替换为GB2312

<%

response.codepage=936

response.charset="gb2312"

Set conn = Server.CreateObject("ADODB.Connection")

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("news.mdb")

conn.open connstr

    set rs=server.CreateObject("ADODB.RecordSet")

    sql="select title,author,keyword from PE_Article"

    rs.open sql,conn,1,3

do while not rs.eof

    rs("title")=xx(rs("title"))

    rs("author")=xx(rs("author"))

    rs("keyword")=xx(rs("keyword"))

    rs.movenext

loop

rs.updateBatch

rs.close

set rs=nothing

conn.close

set conn=nothing

function xx(fileContent)

    dim stm

    set stm=Server.CreateObject("adodb.stream") 

    stm.Type=2

    stm.Mode=3

    stm.Charset="GB2312"

    stm.Open 

    stm.WriteText fileContent

    stm.Position=0

    stm.Charset="UTF-8"

    xx = stm.ReadText

    stm.Close 

    set stm=nothing 

End function

%>

以上测试正确

----------------------------------------------------------------------------------------

  前几天有个朋友从国外买了一个ASP空间,今天把网站上传之后发现所有从access数据库读取的数据都是乱码,实在找不到好的解决方法后过来问我。

具体情况是这样的:

非程序生成的文字可以显示。但程序生成的文字就只有E文可以显示了,中文全是?号。

可惜我用asp的那阵没用过国外空间,还真没碰到过ASP读取access数据库出现乱码的情况,所以没有办法,只好去网上找,网上各种各样的说法很多,但是最终还是归结了三种解决方法,列在下面,以备后用:

方法一:

使用 Microsoft Access 2000 打开数据库,选择工具菜单>数据库实用工具>转换数据库>到早期 Access 数据库版本。OK!

方法二:

后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这

个问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的

<%@ page c%>

赶紧测试了一下,果然OK!!!

例子如下面所示:

<%@ CODEPAGE = "936" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.ADO" %>

<%@ Import Namespace="System.Globalization" %>

<meta http-equiv="Content-Type" />

方法三:

添加一个config.web文件到

web目录下,

建立一个文件config.web,内容如下,放在WEB目录下

<configuration>

<globalization>

requestencoding="utf-8"

resp

/>

</globalization>

对于第一个解决办法,可能会出现转化不成功等情况;第二种方法的弊端就是要修改很多的asp文件;第三种方法好像是对asp.net的程序起作用,asp.net我还真没用过,不好妄加评论。

这三种方法适用于access数据库出现乱码的问题,对于整个网页都出现乱码的问题,请检查你的页面代码里面是否在meta标签里面设定了编码。如:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值