已有2位網(wǎng)友發(fā)表了一針見(jiàn)血的評(píng)論,你還等什么?
必填
選填
選填
記住我,下次回復(fù)時(shí)不用重新輸入個(gè)人信息
必填,不填不讓過(guò)哦,嘻嘻。
◎歡迎參與討論,請(qǐng)?jiān)谶@里發(fā)表您的看法、交流您的觀點(diǎn)。

2010-7-24 0:0:0 | 作者:sw996 | 2個(gè)評(píng)論 | 人瀏覽
我們?cè)陂_(kāi)發(fā)網(wǎng)站時(shí),經(jīng)常會(huì)遇到中文網(wǎng)站打開(kāi)會(huì)亂碼現(xiàn)象,主要原因在于網(wǎng)站開(kāi)發(fā)時(shí)編碼使用問(wèn)題,中文網(wǎng)站編碼通常使用:GB2312文件編碼,英文及其它語(yǔ)言編碼通常使用UTF-8編碼;我們?nèi)绻?a target="_blank">網(wǎng)站建設(shè)時(shí),各頁(yè)面之間編碼不統(tǒng)一,就會(huì)造成切換頁(yè)面時(shí)出現(xiàn)中文亂碼現(xiàn)象.
如果一個(gè)網(wǎng)站有中英文,建議在網(wǎng)站建設(shè)時(shí),統(tǒng)一采用國(guó)際通用UTF-8文件編碼.下面我們重點(diǎn)講一下ASP程序動(dòng)態(tài)生成HTML靜態(tài)文件時(shí)將文件編碼統(tǒng)一為UTF-8編碼實(shí)現(xiàn)方式:
一般我們?cè)贏SP環(huán)境下,運(yùn)行動(dòng)生靜操作時(shí)都用到的是FSO,他是專門(mén)對(duì)文件進(jìn)行操作的一個(gè)組件,他FSO的編碼屬性只有三種,系統(tǒng)默 認(rèn),Unicode,ASCII,并沒(méi)有我們要的UTF-8,所以一般中文系統(tǒng)上使用FSO組件生成的文件都是gb2312格式的了,即便您在網(wǎng)頁(yè)內(nèi)寫(xiě)上 charset="UTF-8"也是沒(méi)用的
要生成UFT-8格式的文件,ASP環(huán)境下我們用 ADODB.Stream代替FSO讀寫(xiě)UTF-8文件,因 為,ADODB.Stream,有一個(gè)CharSet 屬性,可以讓您定義要打開(kāi)或要寫(xiě)入的文件的編碼類型,這樣一來(lái),ADODB.Stream不僅僅是 只能讀取或?qū)懭險(xiǎn)TF-8的文件,基本上什么格式的文件都可以操作了,當(dāng)然當(dāng)前對(duì)我們來(lái)說(shuō)比較有用的就是寫(xiě)為UTF-8格式的文件,
下邊這個(gè)函數(shù)可以實(shí)現(xiàn)這些功能:
*****************************************
函數(shù)參數(shù)說(shuō)明:
FileUrl:生成HTML文件路徑
STR:生成HTML文件內(nèi)容
CharSet:生成HTML時(shí)文件編碼如:"UTF-8"
*****************************************Function WriteToFile (FileUrl, Str, CharSet)
Set stm = CreateObject("Adodb.Stream")
stm.Type = 2
stm.mode = 3
stm.charset = CharSet
stm.Open
stm.WriteText Str
stm.SaveToFile FileUrl, 2
stm.flush
stm.Close
Set stm = Nothing
End Function
其中charset可以選擇的項(xiàng)有很多,您可以在這找到您想要的:網(wǎng)頁(yè)編碼大全 CodePage CharSet 中英文顯示名稱,這個(gè)函數(shù)的功能基本上與您的動(dòng)生靜使用的FSO函數(shù)差不多,只是多了一個(gè)選擇字符編碼的屬性,當(dāng)然您也可以把這個(gè)屬性直接寫(xiě)到函數(shù)里,不過(guò)這樣寫(xiě)比較好,以后如果要用別的轉(zhuǎn)為別的格式,這個(gè)函數(shù)還可以用的上。
關(guān)于ASP網(wǎng)站處理UTF-8編碼文件時(shí)中文字符截取函數(shù),以及取字符串長(zhǎng)度函數(shù),請(qǐng)查詢: ASP網(wǎng)站UTF-8編碼/GB2312編碼中字符串截取函數(shù)和獲取長(zhǎng)度函數(shù) 一文.

必填
選填
選填
記住我,下次回復(fù)時(shí)不用重新輸入個(gè)人信息
必填,不填不讓過(guò)哦,嘻嘻。
◎歡迎參與討論,請(qǐng)?jiān)谶@里發(fā)表您的看法、交流您的觀點(diǎn)。