主頁 > 知識庫 > ASP UTF-8編碼生成靜態(tài)網(wǎng)頁的函數(shù)

ASP UTF-8編碼生成靜態(tài)網(wǎng)頁的函數(shù)

熱門標簽:西寧公司外呼系統(tǒng)平臺 地圖標注宅基地 長沙防封電銷卡品牌 外呼系統(tǒng)還用卡么 騰訊地圖標注商戶關(guān)閉 智能電銷機器人適用于哪些行業(yè) 地圖標注服務(wù)哪家好 武漢營銷電話機器人軟件 徐州人工智能電銷機器人好用嗎
以下函數(shù)采用FSO對象,文件位置在FSO.ASP。FSO對象的文件編碼屬性只有三種,系統(tǒng)默認,Unicode,ASCII,并沒有我們要的utf-8,所以一般中文系統(tǒng)上使用FSO對象生成的文件都是gb2312網(wǎng)頁編碼格式,無法生成UTF-8編碼,因此,英文等拉丁語系和中文可以正常顯示,但象俄語等非拉丁語系,頁面就會出現(xiàn)亂碼。
復(fù)制代碼 代碼如下:

function createfile(sfilename,scontent)
set fso=server.CreateObject("scripting.filesystemobject")
'set f1=fso.opentextfile(sfilename,2,true,-1) 'append=8 only write=2 Unicode編碼=-1
set f1=fso.opentextfile(sfilename,2,true)
f1.write(scontent)
f1.close
set fso=nothing
end function

選擇用ADODB.STREAM對象來替代FSO對象,因為STREAM類有LOADFROMFILE和SAVETOFILE方法,并且有一個至關(guān)重要的屬性CHARSET,這是FSO沒有的。以下函數(shù)采用用Adodb.Stream編寫,成功生成UTF-8網(wǎng)頁文件。
復(fù)制代碼 代碼如下:

function createfile(sfilename,scontent)
Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=scontent
.SaveToFile sfilename,2
.Close
End With
Set objStream = Nothing
end function

對于采用FSO的程序,只要把這個函數(shù)修改一下, 函數(shù)名稱不變,就可以正常運行, 比較省事方便。

如果采用模板生成文件, 還需要把模板文件用UTF-8編碼讀進來,否則,后臺發(fā)布正確文件編碼,但模板文件讀進來是用FSO的GB2312編碼,模板頁面的俄語等非拉丁語系,就會出現(xiàn)亂碼。函數(shù)修改如下:

原來采用的FSO 的READFILE函數(shù)
復(fù)制代碼 代碼如下:

function readfile(sfilename)
Set fso=server.CreateObject("scripting.filesystemobject")
Set f = fso.OpenTextFile(sfilename, 1, true)
if not f.AtEndOfStream then readfile = f.readAll
Set f=nothing
Set fso=nothing
end function

替換采用的ADODB.STREAM 的READFILE函數(shù)

注意根據(jù)實際需要,去掉或保留Function readfile (sfilename,charset)charset參數(shù)charset。
復(fù)制代碼 代碼如下:

Function readfile (sfilename)
Dim f
Set stm=server.CreateObject("adodb.stream")
stm.Type=2 '以本模式讀取
stm.mode=3
stm.charset="utf-8"
stm.open
stm.loadfromfile sfilename
f=stm.readtext
stm.Close
Set stm=Nothing
readfile=f
End Function

關(guān)于文件編碼和網(wǎng)頁編碼, 請參考“字符集Charset和文件編碼Encoding的區(qū)別詳解”。

其他樣例程序
復(fù)制代碼 代碼如下:

'-------------------------------------------------
'函數(shù)名稱: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

'-------------------------------------------------
'函數(shù)名稱: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

其中, 這一行要注意路徑問題,stm.SaveToFile server.MapPath(FileUrl),2
您可能感興趣的文章:
  • php 判斷網(wǎng)頁是否是utf8編碼的方法
  • js 顯示base64編碼的二進制流網(wǎng)頁圖片
  • Base64編碼加密JS代碼網(wǎng)頁版
  • 多種語言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的網(wǎng)頁編碼切換解決方案歸納
  • ASP+FSO生成的網(wǎng)頁文件默認編碼格式以及轉(zhuǎn)換成UTF-8編碼方法
  • asp.net HttpWebRequest自動識別網(wǎng)頁編碼
  • asp.net 網(wǎng)頁編碼自動識別代碼
  • vbs或asp采集文章時網(wǎng)頁編碼問題
  • 網(wǎng)頁語言編碼及asp亂碼問題解決方案
  • 判斷網(wǎng)頁編碼的方法python版

標簽:運城 巴彥淖爾 通遼 荊門 通化 普洱 雅安 鷹潭

巨人網(wǎng)絡(luò)通訊聲明:本文標題《ASP UTF-8編碼生成靜態(tài)網(wǎng)頁的函數(shù)》,本文關(guān)鍵詞  ASP,UTF-8,編碼,生成,靜態(tài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP UTF-8編碼生成靜態(tài)網(wǎng)頁的函數(shù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP UTF-8編碼生成靜態(tài)網(wǎng)頁的函數(shù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章