fso.opentextfile常用于打开指定的文件并返回一个TextStream对象,可以通过这个对象对文件进行读、写或追加。

利用fso.opentextfile读取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

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

     stm.Type=2 '以本模式读取

     stm.mode=3  

     stm.charset=CharSet

     stm.open

     stm.loadfromfile server.MapPath(FileUrl)

     str=stm.readtext

     stm.Close

    set stm=nothing  本文来自www.iisboy.com

     ReadFromTextFile=str

End Function

'-------------------------------------------------

'函数名称:WriteToTextFile

'作用:利用AdoDb.Stream对象来写入UTF-8格式的文本文件

'----------------------------------------------------

Sub WriteToTextFile (FileUrl,byval Str,CharSet)  

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

     stm.Type=2 '以本模式读取

     stm.mode=3

     stm.charset=CharSet

     stm.open

     stm.WriteText str

     stm.SaveToFile server.MapPath(FileUrl),2  

     stm.flush

     stm.Close

    set stm=nothing

End Sub  IISBOY网,IISBOY.COM

http://web100.cc

使用方法:

call WriteToTextFile ("../index.html","aaa","utf-8")

03-14 19:58