萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> 用Asp生成UTF-8格式的文件

用Asp生成UTF-8格式的文件

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 編碼進行處理,應用非常廣泛。

copyright © 萬盛學電腦網 all rights reserved