利用fso.OpenTextFil读取UTF-8文件

  • 2022-06-30 12:34:22
  • 241

  利用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

  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 本文来自

  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

  使用方法:

  复制代码 代码如下:

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

  搞定。