大连网站制作客服
主营业务
  • 网站制作
  • 网站维护
  • 网站推广
  • 域名空间
联系电话
联系人:尹先生
QQ:1050706570
E-mail:biz@noonenet.cn
地址:大连市甘井子区哲林北园29号
·首页 >> 网站技术 >> 解决FSO生成UTF-8静态页面乱码的问题

解决FSO生成UTF-8静态页面乱码的问题

  更新时间:2009-11-12 10:33:01    编辑:阿帆

个人比较懒,所以在生成静态首页的时候特别想逃避,找一个更简单的方法,然后被我找到了,一般做测试的时候肯定会写一个动态的首页[default.asp]吧,直接拿这个来做文章就好了。

     test.asp : form之类的表单提交就不写了,<textarea name="content"><!--#include file="default.asp"--></textarea>,就直接这样引用就完了,页面里面textarea里面就是default.asp读取数据后的内容,直接Post提交处理,用FSO生成静态页面。

      这个地方就有点问题了,生成的utf-8编码的页面是乱码……。检查了下自己的,测试和处理都是在一个页面里面完成的,这个页面是utf-8编码的,没有设涉及到数据库,据说读access数据库也会出现乱码的情况,但是我还没遇到,暂时不管。textarea里面的数据也是对的,纯文本,没有乱码。很郁闷,肯定是写入的时候出问题。

      网上看了看,据说是要写入前转换下编码,抓了个函数。example:

以下是函数片段:
Function BytesToBstr(body,Cset)
     dim objstream
     set objstream = Server.CreateObject("adodb.stream")  
       objstream.Type = 1  
       objstream.Mode =3  
       objstream.Open  
       objstream.Write body  
       objstream.Position = 0  
       objstream.Type = 2  
       objstream.Charset = Cset  
       BytesToBstr = objstream.ReadText    
       objstream.Close  
       set objstream = nothing
End Function

调用:BytesToBstr(body,"GB2312")

试了下,不好使,adodb.stream对象很少用,不知道怎么回事,但是在objstream.write body的时候报错了,此路不通……

       乱码乱码,满世界的乱码,跟UTF-8打交道以来就经常碰到这种鬼事情,真是又爱又恨。

       但是!!!注意,俺搞定了,方法非常简单。。。网上找的。。。实在是很无奈,就像php获取多个同一名字的input必须在input name后面加[]才能当作是数组传递一样。

 example: set fsocreatefile = fso.createtextfile(server.mappth(file),true,1)

  参数: -2:系统默认格式打开文件 -1:以Unicode格式打开文件 0:以ASCII格式打开文件

唉……真是简单....困扰了我那么久的问题,就在一个小小的附加参数上搞定了。。。

 

原载: No.1网络工作室 http://www.noonenet.cn/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。


Tags:asp fso utf-8 生成 静态页面
同类文章:
· Asp -3步完成三级菜单连动
· ASP中COOKIES有效期设置
· Asp - Jmail发邮件,utf-8乱码
· 解决xmlHttp获取中文乱码的问题
· window.open弹出窗口居中
返回新闻列表
top
本站关键字:大连网站制作 - 大连网站建设 - 大连网页制作
CopyRight © 2009-2012 No.1网络工作室 All Rights Reserved  sitemap
地址:大连市甘井子区哲林北园29号 电话:13889684613 E-mail:biz@noonenet.cn QQ:1050706570
logo