2016-10-13 00:16:48 点击量:7 标签: 收藏本文
asp在FSO生成xml后,xml文件编码utf-8,但在flash读取xml时,flash中显示中文乱码。原因是fso不支持utf-8。只支持ansi、unicode等Set MyFile = fso.CreateTextFile(xmlfile,True,-1) 这句的第三个参数就非常重要-1是boolean值的true。
解决办法是:set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True,True)
以下是我的函数代码:
- Function createTextFile(Byval content,Byval fileDir,Byval code)
- dim fileobj,fileCode : fileDir=replace(fileDir, “\”, “/”)
- if isNul(code) then fileCode=”gbk” else fileCode=code
- call createfolder(fileDir,”filedir”)
- on error resume next:err.clear
- set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True,True)
- fileobj.Write(content)
- set fileobj=nothing
- if Err or not isNul(code) then
- err.clear
- With objStream
- .Charset=fileCode:.Type=2:.Mode=3:.Open:.Position=0
- .WriteText content:.SaveToFile Server.MapPath(fileDir), 2
- .Close
- End With
- end if
- if Err Then createTextFile=false : errerrid=err.number:errdes=err.description:Err.Clear : echoErr err_writefile,errid,errdes else createTextFile=true
- End Function
下面是对CreateTextFile的参数的详细说明:
object.CreateTextFile(filename[, overwrite[, unicode]])
参数
object
必选项。应为 FileSystemObject 或 Folder 对象的名称。
filename
必选项。指明所要创建文件的字符串表达式。
overwrite
可选项。Boolean 值,指明能否覆盖已有文件。如果文件可以覆盖,则值为 true ,否则为 false。如果忽略,则已有文件不能被覆盖。
unicode
可选项。Boolean 值,指明文件是否以 Unicode 或 ASCII 文件方式创建。如果文件作为 Unicode 文件创建,则值为 true ,如果作为 ASCII 文件创建,则为 false。如果忽略,则假定为 ASCII 文件。
所以原因是第三个参数应该设置为true。这样就能解决flash读取xml文件时候乱码的问题。
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室