当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp 读取 utf-8格式文档并生成utf-8格式文档的乱码问题

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 asp 读取 utf-8格式文档并生成utf-8格式文档的乱码问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 146 ::
收藏到网摘: n/a

今天在对搜索吧的程序进行utf-8修正时,发现生成的utf-8格式文档存在着乱码,原来文件
create_html.asp代码如下:
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
set objrs=server.createObject("Scripting.FileSystemObject")
conn=server.mappath("example.xml")
set Stream=objrs.opentextfile(conn,1,true,-2)
content=stream.readall
Response.Write(content)
stream.close
%>

这段代码要实现的功能是:从example.xml(utf-8格式)中读取文字包括中文,然后输出,但是每次输出却都是乱码,这个问题着实困扰了我很久,后来还是在经典论坛“小韩”“萧萧小雨 ”的帮助下解决了,真是感谢他们了。
或许我一开始就是错误的,现在正确的代码修改后如下,用了“萧萧小雨”给的代码,包括了用读取的内容生成新的utf-8格式文档。详细代码如下:
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<%
'申明变量
dim read_path,write_paht,content
'----读取文件内容------------------------
Function ReadTextFile(filePath,CharSet)
dim stm
set stm=Server.CreateObject("adodb.stream")
stm.Type=1 'adTypeBinary,按二进制数据读入
stm.Mode=3 'adModeReadWrite ,这里只能用3用其他会出错
stm.Open
stm.LoadFromFile filePath
stm.Position=0 '把指针移回起点
stm.Type=2 '文本数据
stm.Charset=CharSet
ReadTextFile = stm.ReadText
stm.Close
set stm=nothing
End Function
'----写入文件------------------------
Sub WriteTextFile(filePath,fileContent,CharSet)
dim stm
set stm=Server.CreateObject("adodb.stream")
stm.Type=2 'adTypeText,文本数据
stm.Mode=3 'adModeReadWrite,读取写入,此参数用2则报错
stm.Charset=CharSet
stm.Open
stm.WriteText fileContent
stm.SaveToFile filePath,2 'adSaveCreateOverWrite,文件存在则覆盖
stm.Flush
stm.Close
set stm=nothing
End Sub
'要读取的文件路径
read_path = Server.MapPath("example.xml")
'要写入的文件路径
write_path = Server.MapPath("example.asp")
'读取的文件内容
content = ReadTextFile(read_path,"utf-8")
'输出读取的文件
Response.Write(content)
'开始写入
call WriteTextFile(write_path,content,"utf-8")
%>

这段代码相当实用,对于生成utf-8格式静态页十分有用,一些必要的解释我也注明了,需要注意的是:
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
你的页面不要忘记这几行代码了,否则你读取后输出的内容是乱码。