• Blog
  • Archives
  • Search
  • Comments
  • Tags
  • Links
  • xxshuo
  • RSS

有梦就有快乐[杨恒飞]

Reg | Login

人生旅途慢慢,但有梦就会有快乐!

感谢阅读
使用ASP生成UTF-8格式的文件
By coldstar On 2007-09-07, 10:35 AM | Category: WEB开发 | Comments: 0

asp由于是一种古老的语言,它的一些功能对UTF-8支持非常差。
比如,你想生成一个UTF-8格式的文件,使用常用的 scrīpting.FileSystemObject 对象就不行。
scripting.FileSystemObject 对象创建文件的函数,是下面方式:
FileSystemObject.CreateTextFile(filename[,overwrite[,unicode]])
其中的 unicode 属性是这样描述的:
可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。
我们是无法用这个函数来创建UTF-8格式文件的。
这时候,我们可以使用 ADODB.Stream 对象,使用方法见下面:

Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=str
.SaveToFile server.mappath("/sitemap.Xml"),2
.Close
End With
Set objStream = Nothing
附:
ASCII 、Unicode 、 UTF-8 介绍:
ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127。

由于 ASCII 表示的字符非常有限,各个国家或者地区在此基础上提出了自己的字符集,比如在中国应用非常广泛的 GB2312,它为汉字提供了编码,用两个字节表示。

这些字符集之间互不兼容,相同的数字可能表示不同的字符,为信息交流带来了麻烦。
Unicode 是一种字符集,它将世界上的所有字符映射成一个唯一的数字(code point),比如字母 a 对应的数字 0x0041。目前 Unicode 还处于发展中,它所包容的字符越来越多。

在将 Unicode 表示的字符进行存储时,还需要一定的编码方式,比如 UCS-2,它用两个字节来表示 Unicode 编码的字符。而 UTF-8 是 Unicode 字符集的另外一种编码方式,它是变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,因而具有非常好的兼容性,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理,应用非常广泛。


下面举例一具体函数:

 

XML/HTML代码
  1. '================================================   
  2. '函数名:CreatedTextFile   
  3. '作  用:创建文本文件   
  4. '参  数:filename  ----文件名   
  5. '        body  ----主要内容   
  6. '================================================    
  7. Public Function CreatedTextFile(ByVal FileName, ByVal body)   
  8.  On Error Resume Next   
  9.  If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName)   
  10.  Dim oStream   
  11.  Set oStream = CreateObject("ADODB.Stream")   
  12.  oStream.Type = 2 '设置为可读可写   
  13.  oStream.Mode = 3 '设置内容为文本   
  14.  oStream.Charset = "UTF-8" 'GB2312, UTF-8   
  15.  oStream.Open   
  16.  oStreamoStream.Position = oStream.Size   
  17.  oStream.WriteText body   
  18.  oStream.SaveToFile FileName, 2   
  19.  oStream.Close   
  20.  Set oStream = Nothing  
  21.  If Err.Number <> 0 Then Err.Clear   
  22. End Function   
Tags: asp
« Got a packet bigger than 'max_allowed_packet' bytes 超经典:周星星与同居女友的对话»
只显示10条记录相关文章
ASP连接ACCESS/MSSQL及常见操作
[ASP]判断星期,自动把上周的累计数据归到上周字段,本周初始化
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
Leave a Comment

text(*):

  • View Model: Nomal | List
  • Category

    nginx (28)

    win7 (20)

    Windows (39)

    Linux (51)

    WEB服务器 (73)

    网站架构 (11)

    存储与缓存 (2)

    数据库技术 (20)

    WEB开发 (24)

    网站建设 (30)

    安全相关 (27)

    软件开发 (3)

    网络观察 (20)

    精彩瞬间 (20)

    心情管理 (49)

    个人收藏 (29)

  • Calendar

    « 2010年09月 »
    日 一 二 三 四 五 六
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30
  • Random Aritcle

    linux uniq命令小结

    VMware7精简版 桥接功能无法使用

    网游公司的赚钱模式原来是这样一个故事

    /bin/rm: cannot remove `libtoolT': No such file or directory

    [转]关于C语言学习的一些个人看法

    百度,今天你HI了没有?

    恢复不见了的IE桌面图标小窍门

    使用chkrootkit工具检查linux是否被攻入

    IIS的最常见问题

    利用dedecms漏洞 自定义模版oday 成功上传webshell

  • Archives

    2010年08月 (13)

    2010年07月 (17)

    2010年06月 (68)

    2010年05月 (32)

    2010年04月 (3)

    2010年03月 (8)

    2010年02月 (4)

    2010年01月 (19)

    2009年12月 (45)

    2009年11月 (28)

    2009年10月 (10)

    2009年09月 (15)

    更多...

  • Others

    Powered by SaBlog-X.

    Designed by Giki+Kula.

    有梦就有快乐[杨恒飞] All rights reserved.

    陕ICP备07009322号