深圳soho网,small office home office
当前位置 : 深圳soho网 >>  web技术  >> 文章正文

让ASP生成utf-8的文件函数

日期:2008-1-3  作者:szsoho  来源:www.szsoho.com   点击:

国外服务器,使用FSO方法生成UTF-8编码文件时,经常出现这样的情况"procedure failed" (进程错误)。编写的时候总以为是自己写的程序出了问题。后来才知道 FSO对UTF-8编码的支持并不理想。于是采用AdoDb.Stream对象 解决了这个问题,具体使用方法:

1。让asp程序内部以utf-8编码执行,在所有文件加上(包含文件除外)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
@LANGUAGE="VBSCRIPT" 这句是设置默认语言的,CODEPAGE设置编码方式的,65001是utf-8编码,若为936则是简体中文gb2312编码。
2。将程序存储为utf-8格式编码
用dw打开,在属性里设置utf-8编码即可
3。让浏览器以utf-8编码显示

到这里只是页面处理操作  关键为下面的程序修改部分:

AdoDb.Stream操作文件函数:
引用

'函数名称: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
stm.open
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Close
set stm=nothing
end Sub