麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

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

2024-05-04 11:08:41
字體:
供稿:網(wǎng)友
按照“FSO生成的網(wǎng)頁文件默認(rèn)編碼格式以及轉(zhuǎn)換成UTF-8編碼方法”,編寫函數(shù)采用用Adodb.Stream對象,成功生成UTF-8網(wǎng)頁文件。
 
 
 
以下函數(shù)采用FSO對象,文件位置在FSO.ASP。FSO對象的文件編碼屬性只有三種,系統(tǒng)默認(rèn),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對象,因?yàn)镾TREAM類有LOADFROMFILE和SAVETOFILE方法,并且有一個(gè)至關(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的程序,只要把這個(gè)函數(shù)修改一下, 函數(shù)名稱不變,就可以正常運(yùn)行, 比較省事方便。 

如果采用模板生成文件, 還需要把模板文件用UTF-8編碼讀進(jìn)來,否則,后臺發(fā)布正確文件編碼,但模板文件讀進(jìn)來是用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ù)實(shí)際需要,去掉或保留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對象來寫入U(xiǎn)TF-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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 毛片大全免费看 | 牛牛碰在线 | 无码av女优 | 九九热在线精品视频 | 国产精品久久久久久久久久久久午夜 | 欧美另类视频在线 | 国产99精品视频 | 欧美大荫蒂xxx | 国产精品久久久久久久av | 毛片网站网址 | 久久久三区 | 免费一级特黄毛片视频 | 亚洲国产超高清a毛毛片 | 成人午夜影院 | 久久久综| 一级免费黄视频 | 色淫湿视频 | 精品久久久久久久久久中文字幕 | 欧美一级特黄特色大片免费 | 精品国产一区三区| 欧美福利视频一区二区三区 | 制服丝袜成人动漫 | 欧美一区成人 | 人人舔人人舔 | 色中色在线播放 | 91懂色| 7777在线视频免费播放 | 国产精品免费成人 | 欧美扩阴视频 | av不卡毛片 | 精品一区二区6 | 免费一区在线 | 羞羞草视频 | 依依成人综合 | 日韩三区视频 | 污黄视频在线播放 | 免费a级毛片大学生免费观看 | 亚洲精品一二三区 | 精品国产欧美一区二区 | 国产精品一区免费在线观看 | 日本a在线观看 |