设为首页
收藏本站
最新电影
> 子栏目 Asp | Jsp | XML | XSL | Div+Css | 自定义函数 | 数据库 | 脚本特效
您现在的位置: 首页=>后台技术=>Asp 订阅本栏目  
Asp使用FSO写UTF-8编码文件的方法
时间: 2009-12-17 16:33:11 阅读次数:4343


昨天给aw写一个生成天气预报的xml文件的程序,考虑到通用性,于是选择utf-8编码,我也比较偏好这个编码最先想到用FSO来写这个xml文件,后来却发现生成的xml文件不能正常显示,仅仅是因为编码的原因用记事本打开生成的xml文件,另存为utf-8编码的xml文件即可正常显示于是在网上搜索了一下,结果发现很多人说FSO只能写ANSI编码的文件,不能写utf-8格式的文件,并且只能读写文本文件很多人都选择用ADODB.STREAM对象来替代FSO对象,因为STREAM类有LOADFROMFILE和SAVETOFILE方法.并且有一个至关重要的属性CHARSET,这是FSO没有的有人给出了样例程序:


飞飞A.sp技术乐园'-------------------------------------------------
'
函数名称:ReadTextFile
'
作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件
'
----------------------------------------------------
Function ReadFromTextFile (FileUrl,CharSet)
dim str
set stm=server.CreateObject("adodb.stream")
stm.Type
=2'以本模式读取
stm.mode=3
stm.charset
=CharSet
stm.open
stm.loadfromfile server.MapPath(FileUrl)
str
=stm.readtext
stm.Close
set stm=nothing
ReadFromTextFile
=str
End Function



'-------------------------------------------------
'
函数名称:WriteToTextFile
'
作用:利用AdoDb.Stream对象来写入UTF-8格式的文本文件
'
----------------------------------------------------
Sub WriteToTextFile (FileUrl,byval Str,CharSet)
set stm=server.CreateObject("adodb.stream")
stm.Type
=2'以本模式读取
stm.mode=3
stm.charset
=CharSet
飞飞Asp技术~乐园 stm.open
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),
2
stm.flush
stm.Close
set stm=nothing
End Sub

有这个样例程序,很轻松地搞定了生成utf-8编码的xml文件的问题谁知一上传到服务器,访问这个页面居然显示为空白,所有的代码均没有执行,包括普通的HTML代码都不显示后来经过一步一步测试,发现是下面这一行的问题:
stm.SaveToFile server.MapPath(FileUrl),2


更为诡异的是即使把这一行注释掉,这个页面依然不能执行,但是一旦删除这一行,整个页面就恢复正常了,估计是主机的原因……没办法咯,还是得用FSO,反正主机是支持FSO的,我还就不信FSO只能写ANSI编码的文件了!翻了一些电子书和大量网页,终于发现FSO是可以设置编码的
其中unicode参数可以为以下几种:


-2'以系统默认格式打开文件
-1'以 Unicode 格式打开文件
0'以 ASCII 格式打开文件



于是问题迎刃而解,上传到主机,测试,一切OK,哇哈哈~

=============== stream遍历每一行 =====================
没处理过这样的编码,不过单独用stream流应该可以的



dim st
dim c
飞飞Asp@技术乐园
dim strHTML
st
= Server.CreateObject("adodb.stream")
st.Type
= 2
st.Open
st.Position
= 0
st.loadFromFile Server.MapPath(
"christ.txt")
c
= st.readText
st.close
c
= split(c,chr(13)&chr(10))
for each strHTML in c
strHTML
= Trim(strHTML)
strHTML
= replace(strHTML,"'","''")
......
next




站内搜索    

下一篇HTTP 401.5 - 未经授权:ISAPI/CGI 应用程序授权失败。

上一篇vbscript Asc 函数 使用介绍

本栏目最新 栏目最新列表
HTTP 401.5 - 未经授权:ISAPI/CGI 应用程序
Asp使用FSO写UTF-8编码文件的方法
asp操作,控制excel的方法
让ewebeditor兼容ie8的方法
Asp实现二级域名的方法
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
VIA Rhine II Fast Ethe
Transact SQL 常 [1] [2]
电脑常用端 [1] [2] [3]
十道羊皮卷 欣赏+mp3版+
Do you get a kick out
每日一句:A friend and
每日一句:Theres no tu
网站开发常用手册
 width= 
伟哥博客 西安房产 123最新电影 三四六四