ASP中可以用FSO生成文件,使用起来十分简单,几行代码可以完成,但是如果你想生成UTF-8格式的文件,恐怕FSO就无能为力了。

      FSO的CreateTextFile方法:

      FSO.CreateTextFile(Server.mappath("test.XML"),   true,   true)  

      最后一个参数是指定编码格式为Unicode,而默认或者不设值的话是ASCII,Unicode是UTF-8、UTF-16、UTF-32的合集,默认情况下为16,所以即使设置了参数为true,生成的文件格式也只是UTF-16,而非UTF-8。

      也就是说,FSO不支持直接生成UTF-8格式的文件。要想生成UTF-8格式的文件,需要用到adodb.stream对象。

      如下是代码:

      '函数名称:ReadTextFile
      '作用:利用Adodb.Stream对象来读取UTF-8编码的文件
      '示例:ReadFromTextFile("File/FileName.htm",UTF-8)
      Function ReadFromTextFile(FileUrl,CharSet)
      dim str,stm
      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编码的文件
      '示例:WriteToTextFile("File/FileName.htm",Content,UTF-8)
      Sub WriteToTextFile(FileUrl,byval Str,CharSet)
      dim stm
      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