|
在ASP中,我们常用Scripting.FileSystemObject组件来读写文本文件,但它有一个缺点是对编码支持不足,比如我们想读写一个utf-8文本文件,FSO就很难办到了,这时我们就需要使用Adodb.Stream组件来代替它。
'文件内容读取. 复制代码 代码如下: Function LoadFile(ByVal File) Dim objStream On Error Resume Next Set objStream = Server.CreateObject("ADODB.Stream") If Err.Number=-2147221005 Then Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>" Err.Clear Response.End End If With objStream .Type = 2 .Mode = 3 .Open .LoadFromFile Server.MapPath(File) If Err.Number<>0 Then Response.Write "<div align='center'>文件<font color='#ff0000'>"&File&"</font>无法被打开,请检查是否存在!</font></div>" Err.Clear Response.End End If .Charset = "GB2312" .Position = 2 LoadFile = .ReadText .Close End With Set objStream = Nothing End Function
'存储内容到文件 复制代码 代码如下: Sub SaveToFile(ByVal strBody,ByVal File) Dim objStream On Error Resume Next Set objStream = Server.CreateObject("ADODB.Stream") If Err.Number=-2147221005 Then Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>" Err.Clear Response.End End If With objStream .Type = 2 .Open .Charset = "GB2312" .Position = objStream.Size .WriteText = strBody .SaveToFile Server.MapPath(File),2 .Close End With Set objStream = Nothing End Sub 调用示例 复制代码 代码如下: <% WriteFile "aaa.txt", "www.jb51.net", "utf-8" Response.Write ReadFile("aaa.txt", "utf-8") %>
|
|