Asp生成UTF8编码的静态页面的方法:adodb.stream组件

  • 内容
  • 评论
  • 相关

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了

评论

0条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    click to change 看不清?点击换一张!