关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

解决fso不能写入中文的替代办法:Adodb.Stream读取和写入UTF-8

作者:佚名   时间:2012-02-05   分享到:

近日用fso写了个函数,用于读写txt文件以记录操作日志,在本地运行一切正常,在英文网站建设的时候,上传到国外空间(英文windows系统)则出错。经测试,写入英文和数字都没事,就是中文不行,文本文件的编码从ANSI改为unicode仍然不行。上网找到解决办法,是用Adodb.Stream的二进制功能实现读写。两者的功能和用法大体接近,但Adodb.Stream适用性更广,只要服务器没有禁止这个组件。下面给出用Adodb.Stream读写文本文件实现记录操作日志的函数:
sub wirteLog(str)
 dim stream,char,FileUrl,templet
 char = "utf-8"
 FileUrl = "log.txt"
 set stream=server.CreateObject("adodb.stream")
 stream.Type=2'以本模式读取
 stream.mode=3
 stream.charset=char
 stream.open
 stream.loadfromfile server.MapPath(FileUrl)
 templet=stream.readtext
 stream.WriteText vbcrlf & str
 stream.SaveToFile server.MapPath(FileUrl),2
 stream.flush
 stream.Close
 set stream=nothing
end sub
 
 


--------------------------------------------------------------------------------

另附读取和写入的示例:

 

<%'函数名称:ReadTextFile
'作用:利用Adodb.Stream对象来读取UTF-8编码的文件
'示例:ReadFromTextFile("File/FileName.htm",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编码的文件
'示例:WriteToTextFile("File/FileName.htm",Content,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%>
 



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/contact/20151229/n7699.html

上海联楷网络新闻