HTMer

研究互联网络和电脑应用技术的IT技术网。 (勤奋+智慧→理想)

« 防止WinRAR泄露隐私,清除WinRAR历史记录方法彻底删除GoogleUpdate.exe进程方法 »

ASP用FSO生成utf-8编码的静态页时出现乱码的解决方法

    目前,在网络编程中,生成静态页技术已经越来越多的被使用,一般我们在ASP环境下,生成静态页时用到的技术是FSO,它是专门对文件进行操作的一个组件,FSO的编码属性只有三种:系统默认、Unicode、ASCII。所以,当我们需要生成的页面编码为utf-8时,就会出现乱码现象,那么如何来生成utf-8编码的静态页面呢?请接着往下看。

    在ASP环境下我们用ADODB.Stream代替FSO读写utf-8文件,因为,ADODB.Stream有一个CharSet 属性,可以让您定义要打开或要写入的文件的编码类型,这样一来,ADODB.Stream不仅仅是只能读取或写入utf-8的文件,基本上什么格式的文件都可以操作了,具体方法如下:

    准备工作:
    ①分别建立两个文件夹:template(存放模版文件)、article(存放生成后的静态页面文件)
    ②建立静态页模版文件:htmer.htm
    ③建立生成静态页程序文件htmer.asp

    程序代码:

'======================htmer.asp代码======================
<%
Template="template/htmer.htm" '模版文件存放位置
str=ReadFromUTF(Template,"utf-8") '读取模版,注意编码对应模版文件编码
strtitle="标题"
strcontent="内容"
content=Replace(str,"<#title#>",strtitle) '将模版中标记的内容替换成实际需要的内容
content=Replace(content,"<#content#>",strcontent)
Filen="article/htmer.htm" '生成静态页文件存放位置
Call WriteToUTF(content,Filen) '生成静态页
If Not Err Then Response.Write "静态页面生成成功!"

Function ReadFromUTF(TempString,CharSet) 'TempString为要读取的模版文件路径;Charset是编码
  Dim str
  Set stm=server.CreateObject("adodb.stream")
  stm.Type=2
  stm.Mode=3
  stm.Charset=CharSet
  stm.Open
  stm.loadfromfile Server.MapPath(TempString)
  str=stm.readtext
  stm.Close
  Set stm=Nothing
  ReadFromUTF=str
End Function
Function WriteToUTF(content,Filen) '将替换后的内容写入HTML文档,content为替换后的字符串,Filen为生成的文件名
  Set objStream=Server.CreateObject("ADODB.Stream")
    With objStream
    .Open
    .Charset="utf-8" '编码,这里你可以改成任何编码
    .Position=objStream.Size
    .WriteText=content '模版+数据 写入内容
    .SaveToFile server.mappath(Filen),2 '生成文件路径
    .Close
    End With
  Set objStream=Nothing
End Function
%> 

    htmer.htm静态模版页文件代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><#title#></title>
</head>
<body>
<#content#>
</body>
</html>

 



欢迎转载,转载请注明:转载自HTMer [ http://www.htmer.com/ ]

本文链接地址:http://www.htmer.com/article/435.htm

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

HTMer , Powered By Z-Blog, 苏ICP备08003082号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
HTM|HTML|ASP|PHP|JSP|Mysql|SQL|Dreamweaver|Flash|Fireworks|Photoshop|SEO Copyright www.HTMer.com. Some Rights Reserved. English Version