程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> fso不能生成utf-8文件的解決方法

fso不能生成utf-8文件的解決方法

編輯:ASP技巧

今天在做ASP生成靜態頁的時候遇到這個問題
由於我生成靜態頁使用的方法是讀取ASP頁面的html代碼,保存為html文件,這種方法。由於動態頁是utf8格式的編碼,我得到它的html代碼後,使用fso保存,生成html是成功了,但是不能訪問,因為Html的編碼有問題,選擇gb2312就可以正常訪問了。這樣不行,因為整站都是utf8格式的編碼,打開這個頁面,還需要選擇編碼才可訪問,這樣太麻煩了,也沒有人願意去訪問,所以必須解決utf8格式編碼問題。

經過一翻搜索才了發現,fso不能生成utf8格式的文件。所以要換種方法。

又找了一會,找到一個函數,可代替fso生成文件,它使用的adodb.stream對象來生成utf8文件的,函數如下:
'-------------------------------------------------
'函數名稱:ReadTextFile
'作用:利用AdoDb.Stream對象來讀取UTF-8格式的文本文件
'----------------------------------------------------
Function ReadFromTextFile (FileUrl,CharSet)
    dim str
    set stm=server.CreateObject("adodb.stream")
     stm.Type=2 '以本模式讀取
     stm.mode=3 
     stm.charset=CharSet
     stm.open
     stm.loadfromfile server.MapPath(FileUrl)
     str=stm.readtext
     stm.Close
    set stm=nothing
     ReadFromTextFile=str
End Function
'-------------------------------------------------
'函數名稱:WriteToTextFile
'作用:利用AdoDb.Stream對象來寫入UTF-8格式的文本文件
'----------------------------------------------------
Sub WriteToTextFile (FileUrl,byval Str,CharSet) 
    set stm=server.CreateObject("adodb.stream")
     stm.Type=2 '以本模式讀取
     stm.mode=3
     stm.charset=CharSet
     stm.open
     stm.WriteText str
     stm.SaveToFile server.MapPath(FileUrl),2 
     stm.flush
     stm.Close
    set stm=nothing
End Sub
使用方法:
call WriteToTextFile ("../index.Html","aaa","utf-8") 
搞定。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved