<%
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" />
access数据库编码转换:将将UTF8替换为GB2312
最新推荐文章于 2024-04-01 09:25:21 发布