加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

在ASP.NET中创建可读的utf-8支持的纯文字文件的另一种方法

发布时间:2023-09-02 13:43:55 所属栏目:Asp教程 来源:
导读:一般情况下可以使用fso的createTextFile函数,但有时候我们需要生成utf8格式的文件,那么就可以用下面的函数扩展了

但很多时候为了方便,我们会自定义生成文本文件的函数

Function createTextFile(Byval cont
一般情况下可以使用fso的createTextFile函数,但有时候我们需要生成utf8格式的文件,那么就可以用下面的函数扩展了
 
但很多时候为了方便,我们会自定义生成文本文件的函数

Function createTextFile(Byval content,Byval fileDir,Byval code)
 
    dim fileobj,fileCode : fileDir=replace(fileDir, "\", "/")
 
    if isNul(code) then fileCode=Charset else fileCode=code
 
    call createfolder(fileDir,"filedir")
 
    if fileCode="utf-8" then
 
        on error resume next
 
        With objStream
 
            .Charset=fileCode:
 
            .Type=2:
 
            .Mode=3:
 
            .Open:
 
            .Position=0
 
            .WriteText content:
 
            .SaveToFile Server.MapPath(fileDir), 2
 
            .Close
 
        End With
 
    else
 
        on error resume next:err.clear
 
        set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True)
 
        fileobj.Write(content)
 
        set fileobj=nothing
 
    end if
 
    if Err Then err.clear :createTextFile=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_09,errid,errdes else createTextFile=true
 
End Function
 
Sub echoErr(byval str,byval id, byval des)

 dim errstr,cssstr
 
        cssstr="<meta http-equiv=""Content-Type"" content=""text/html; charset="&Charset&""" />"
 
 cssstr=cssstr&"<style>body{text-align:center}#msg{background-color:white;border:1px solid #0073B0;margin:0 auto;width:400px;text-align:left}.msgtitle{padding:3px 3px;color:white;font-weight:700;line-height:28px;height30px;font-size:12px;border-bottom:1px solid #0073B0; text-indent:3px; background-color:#0073B0}#msgbody{font-size:12px;padding:20px 8px 30px;line-height:25px}#msgbottom{text-align:center;height:20px;line-height:20px;font-size:12px;background-color:#0073B0;color:#FFFFFF}</style>"
 
 errstr=cssstr&"<script language=""javascript"">setTimeout(""goLastPage()"",5000);function goLastPage(){location.href='"& sitePath &"/';}</script><div id='msg'><div class='msgtitle'>提示:【"&str&"】</div><div id='msgbody'>错误号:"&id&"<br>错误描述:"&des&"<br /><a href=""javascript:history.go(-1);" rel="external nofollow" ">返回上一页</a> <a href=""" rel="external nofollow" & sitePath &"/"">返回首页</a></div><div id='msgbottom'>Powered by AspCms2.0</div></div>"
 
 cssstr=""
 
 die(errstr)
 
End Sub
 
Function createFolder(Byval dir,Byval dirType)
 
dim subPathArray,lenSubPathArray, pathDeep, i
 
on error resume next
 
dir=replace(dir, "\", "/")
 
  if trim(sitePath) = "" then pathDeep = "/" else pathDeep = sitePath
 
  pathDeep = server.MapPath(pathDeep)
 
dir=replace(server.mappath(dir), pathDeep, "")
 
subPathArray=split(dir, "\")
 
select case dirType
 
case "filedir"
 
 lenSubPathArray=ubound(subPathArray) - 1
 
case "folderdir"
 
lenSubPathArray=ubound(subPathArray)
 
end select
 
for i=0 to lenSubPathArray
 
    if trim(subPathArray(i)) <> "" then
 
  pathDeep=pathDeep&"\"&subPathArray(i)
 
  if not objFso.FolderExists(pathDeep) then objFso.CreateFolder pathDeep
 
    end if
 
next
 
if Err Then createFolder=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_10,errid,errdes else createFolder=true
 
End Function
 
使用方法
 
createTextFile content,htmlfilepath,""
 
content就是内容,filepath就是文件路径
 
createTextFile "内容","/article/11/22/3.htm",""
 
ASP生成UTF-8编码的代码
 
方法一:createtextfile生成文件方法
 
function WriteToFile(FileName,FileContent)
 
set fso=server.createobject("scripting.filesystemobject")
 
set fp=fso.createtextfile(server.mappath(FileName),,True)
 
fp.write(FileContent)
 
end function
 
方法二:ADODB.Stream生成文件方法 支持utf8,最上面的函数就包括下面的两种方法

Set ccObjStream = Server.CreateObject("ADODB.Stream")
 
With ccObjStream
 
.Type = 2
 
.Mode = 3
 
.Open
 
.Charset = "utf-8"
 
.Position = ccObjStream.Size
 
.WriteText 要生成的内容
 
.SaveToFile 要生成文件路径和文件名,2
 
.Close
 
End With
 
CreateTextFile 方法
 
创建指定文件并返回 TextStream 对象,该对象可用于读或写创建的文件。
 
object.CreateTextFile(filename[, overwrite[, unicode]])
 
参数
 
object
 
必选项。应为 FileSystemObject 或 Folder 对象的名称。
 
filename
 
必选项。字符串表达式,指明要创建的文件。
 
overwrite
 
可选项。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件,该值为 True;如果不能覆盖文件,则该值为 False 。如果省略该值,则不能覆盖现有文件。
 
unicode
 
可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章