·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS2]asp生成xml后 as读取后显示中文乱码的问题

时间:2011-11-28 15:02boab.cn
asp在FSO生成xml后,xml文件编码utf-8,但在flash读取xml时,flash中显示中文乱码。原因是fso不支持utf-8。只支持ansi、unicode等Set MyFile = fso.CreateTextFile(xmlfile,True,-1) 这句的第三个参数就非常重要-1是boolean值的true

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)

以下是我的函数代码:

  1. Function createTextFile(Byval content,Byval fileDir,Byval code)  
  2. dim fileobj,fileCode : fileDir=replace(fileDir, “\”, “/”)  
  3. if isNul(code) then fileCode=”gbk” else fileCode=code 
  4. call createfolder(fileDir,”filedir”)  
  5. on error resume next:err.clear  
  6. set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True,True)  
  7. fileobj.Write(content)  
  8. set fileobj=nothing 
  9. if Err or not isNul(code) then  
  10. err.clear  
  11. With objStream  
  12. .Charset=fileCode:.Type=2:.Mode=3:.Open:.Position=0 
  13. .WriteText content:.SaveToFile Server.MapPath(fileDir), 2  
  14. .Close  
  15. End With  
  16. end if  
  17. if Err Then createTextFile=false : errerrid=err.number:errdes=err.description:Err.Clear : echoErr err_writefile,errid,errdes else createTextFile=true 
  18.  
  19. 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文件时候乱码的问题。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器