HTMer
  • 首页
  • 技术
  • 下载
  • 影视
  • 音乐
  • 随笔
首页 / 技术 / ASP用FSO生成utf-8编码的静态页时出现乱码的解决方法

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

技术 • 2008-11-05 08:54:25 • 阅读 3103

目前,在网络编程中,生成静态页技术已经越来越多的被使用,一般我们在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>
源代码
您可能感兴趣的
JAVA开发中连接Oracle19c多租户PDB时出错的解决方法
今天用JAVA开发连接Oracle19c数据库,提示ORA-12505错误,在网上找到了解决方法,拿来分享。...
技术 • 5年前 • 阅读 1835
随机密码在线生成器
如今的时代,到处都要设置密码,设置的太简单很容易被破解,设置的复杂又比较烧脑,今天整理了一个随机密码在线生成器,可以设置大小写字母、数字、特殊字符、密码长度等,非常方便,拿来分享。...
技术 • 6年前 • 阅读 1643
jsp(JAVA)时时抓取网页内容的方法
今天项目中需要使用jsp来时时远程抓取网页的内容,实现方法比较简单,拿来分享。...
技术 • 6年前 • 阅读 1348
JavaScript实现将人民币小写金额自动转换成大写的方法
今天在项目中遇到一个需求,需要根据用户输入的人民币小写金额自动转换成大写,以免用户再次输入大写金额的麻烦,拿来分享,可以处理整数、小数、负数。...
技术 • 6年前 • 阅读 1813
ASP截取中英文字符串函数
用ASP做网站的时候经常会碰到要截取字符串的情况。ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码。...
技术 • 9年前 • 阅读 1846
用Masonry和lazyload插件实现网页瀑布流布局的方法
我们经常能在网上看到很多瀑布流布局的页面,尤其是很多图片网站,例如花瓣网。这种最典型的瀑布流布局,每个元素的宽度是固定的,但图片长度各不相同,于是通过下图这种样子竖着排列了下来,达到了最大的页面空间利用率。...
技术 • 10年前 • 阅读 1960
  • 网页配色表
  • 二维码生成器
  • 整数分区计算器
  • 随机密码生成器
  • 金额大写转换
Copyright © 2023 HTMer.com⋅苏ICP备08003082号-1⋅ 苏公网安备32041202002242⋅Powered By Z-Blog
  • 首页
  • 技术
  • 下载
  • 影视
  • 音乐
  • 随笔
标签
软件技巧 Windows 源代码 主机 Office 浏览器 腾讯 科普资讯 数据库 病毒防护 节日 下载 远程桌面 Google 心情 足球 PS 健康 电影 音乐 百度 Apple 阿里巴巴 Z-Blog 播放器 微信 阿里云盘 VMware
关于我

研究互联网络和电脑应用技术的IT技术网

HTMer简介