时间:2023-11-09 点击: 次 来源:网络 添加者:佚名 - 小 + 大
Asp生成UTF8编码的静态页面的方法之一 编写一个生成静态的程序很容易,通常生成静态都用到 FSO 。通过服务器的FSO组件读取模板文件,然后用数据替换掉模板中的标签;再采用FSO把替换后的数据写入指定的静态网页中。 但在用FSO生成UTF-8编码的网页总是空白,后来通过搜索才知道FSO根本就不支持UTF-8编码文本的读取和写入。 UTF-8是国际通用的语言编码,在任何语言的操作系统上都能正常的显示中文、英文、日文、韩文、阿拉伯文。。。 这时就得用到adodb.stream组件...... 程序代码'*********************************************** '函数名:LoadFile '作 用:利用ADODB.Stream读取文件 'Update:2008-2-9 '*********************************************** Function LoadFile(ByVal File) Dim objStream On Error Resume Next Set objStream = Server.CreateObject("ADODB.Stream") If Err.Number=-2147221005 Then Response.Write " 非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序 " Err.Clear Response.End End If With objStream .Type = 2 .Mode = 3 .Open .LoadFromFile Server.MapPath(File) If Err.Number<>0 Then Response.Write " 文件"&File&"无法被打开,请检查是否存在! " Err.Clear Response.End End If .Charset = "utf-8" .Position = 2 LoadFile = .ReadText .Close End With Set objStream = Nothing End Function '*********************************************** '函数名:SaveToFile '作 用:利用ADODB.Stream存储内容到文件 'Update:2008-2-9 '*********************************************** 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 " 非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序 " Err.Clear Response.End End If With objStream .Type = 2 .Open .Charset = "utf-8" .Position = objStream.Size .WriteText = strBody .SaveToFile Server.MapPath(File),2 .Close End With Set objStream = Nothing End Sub 先引用上面两段函数,接着下面: 程序代码Dim wstr wstr=LoadFile("../Template/Sort.asp") '读取模板内容 '... '这里是你的代码(替换标签等操作)... '... Call SaveToFile(wstr,"..\Template\Sort.html") '生成文件 Conn.Close : Set Conn=Nothing '关闭数据链接,释放资源 Response.Write("") Response.End() 到这里所有操作就全部OK了 想用模版生成静态页,不过在替换标记内容时没成功 Function Admin_LoadFile(t0) |