时间:2020-08-19 点击: 次 来源:网络 添加者:佚名 - 小 + 大
利用fso.OpenTextFil读取UTF-8文件或者用FSO.save生成UTF-8文件时乱码解决办法生成静态页使用的方法是读取asp页面的html代码,保存为html 文件,这种方法。由于动态页是utf8格式的编码,我得到它的html代码后,使用fso保存,生成html是成功了,但是不能访问,因为html的编码有问题,选择gb2312就可以正常访问了。这样不行,因为整站都是utf8格式的编码,打开这个页面,还需要选择编码才可访问,这样太麻烦了,也没有人愿意去访问,所以必须解决utf8格式编码问题。 经过一翻搜索才了发现,fso不能生成utf8格式的文件。所以要换种方法。又找了一会,找到一个函数,可代替fso生成文件,它使用的adodb.stream 对象来生成utf8文件的,函数如下: ’------------------------------------------------- ’函数名称:ReadTextFile ’作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 ’---------------------------------------------------- Function ReadFromTextFile(FileUrl,CharSet) dim str setstm=server.CreateObject("adodb.stream") stm.Type=2’以本模式读取 stm.mode=3 stm.charset=CharSet stm.open stm.loadfromfileserver.MapPath(FileUrl) str=stm.readtext stm.Close set stm=nothing ReadFromTextFile=str EndFunction ’------------------------------------------------- ’函数名称:WriteToTextFile ’作用:利用AdoDb.Stream对象来写入UTF-8格式的文本文件 ’---------------------------------------------------- Sub WriteToTextFile(FileUrl,byvalStr,CharSet) set stm=server.CreateObject("adodb.stream") stm.Type=2’以本模式读取 stm.mode=3 stm.charset=CharSet stm.open stm.WriteTextstr stm.SaveToFile server.MapPath(FileUrl),2 stm.flush stm.Close set stm=nothing En dSub 使用方法: call WriteToTextFile("../index.html","aaa","utf-8") 搞定。
|