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
粤公网安备 44060502001196号