ASP中可以用FSO生成文件,使用起來十分簡單,幾行代碼可以完成,但是如果你想生成UTF-8格式的文件,恐怕FSO就無能為力了。
FSO的CreateTextFile方法:
FSO.CreateTextFile(Server.mappath("test.XML"), true, true)
最后一個參數(shù)是指定編碼格式為Unicode,而默認或者不設值的話是ASCII,Unicode是UTF-8、UTF-16、UTF-32的合集,默認情況下為16,所以即使設置了參數(shù)為true,生成的文件格式也只是UTF-16,而非UTF-8。
也就是說,F(xiàn)SO不支持直接生成UTF-8格式的文件。要想生成UTF-8格式的文件,需要用到adodb.stream對象。
如下是代碼:
'函數(shù)名稱: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.map(FileUrl)
str=stm.readtext
stm.Close
set stm=nothing
ReadFromTextFile=str
End Function
'函數(shù)名稱: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.map(FileUrl,2)
stm.flush
stm.Close
set stm=nothing
End Sub