您现在的位置:多问网知识中心电脑教学网络编程ASP用FSO生成utf-8编码的静态页时出现乱码的解决方法

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

06-11 19:34:59   浏览次数:40826  栏目:网络编程
标签:unix网络编程,java网络编程,windows网络编程,http://www.duowen123.com 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>,ASP用FSO生成utf-8编码的静态页时出现乱码的解决方法
相关热词搜索: tag: 网络编程,unix网络编程,java网络编程,windows网络编程,电脑教学 - 网络编程
上一篇:PHP中通过strtotime()计算两个时间差问题
文章评论
联系我们 | 网站地图 | 范文大全 | 管理资料 | 驾照考试 | 教学资料 | 名言大全 | 软件下载
Copyright @ 多问网 all rights reserved
学生评语_教案设计_小学语文试卷
1 2 3 4 5 6 7 8 9 10 11 12