宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

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

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)

以下是我的函数代码:

  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文件时候乱码的问题。

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室