1. 程式人生 > >ASP中處理UTF-8格式的檔案

ASP中處理UTF-8格式的檔案

注意:這裡說的ASP
ASP由於它的一些功能對UTF-8支援非常差。
比如,你想生成一個UTF-8格式的檔案,使用常用的 Scripting.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 編碼進行處理,應用非常廣泛。