[AS2]asp生成xml后 as读取后显示中文乱码的问题
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文件时候乱码的问题。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例