主頁(yè) > 知識(shí)庫(kù) > Asp 編碼互轉(zhuǎn)的研究和實(shí)現(xiàn)代碼

Asp 編碼互轉(zhuǎn)的研究和實(shí)現(xiàn)代碼

熱門標(biāo)簽:科大訊飛語(yǔ)音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 阿里云 電子圍欄 Linux服務(wù)器 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù) 服務(wù)器配置
文章背景:
某天,我的一個(gè)同事給我看了CSDN上面的一篇關(guān)于編程語(yǔ)言排行榜的文章,里面我看到VB還是排名很不錯(cuò)的,我就說(shuō),asp(vbscript)確實(shí)挺不錯(cuò)。結(jié)果他就反駁我,說(shuō)asp不好,很多東西很難實(shí)現(xiàn)。我說(shuō)比如哪些東西?我開(kāi)發(fā)了幾年的asp都沒(méi)有發(fā)現(xiàn)很難實(shí)現(xiàn)的東西,除非是屬于非腳本語(yǔ)言范圍內(nèi)的,比如多線程的應(yīng)用(當(dāng)然,asp也可以模擬實(shí)現(xiàn)多線程任務(wù))等。結(jié)果他說(shuō)了什么多線程,還有編碼轉(zhuǎn)換等,說(shuō)自己曾經(jīng)為了轉(zhuǎn)換編碼費(fèi)了很大精力卻沒(méi)有成功過(guò),所以覺(jué)得asp太弱。聽(tīng)到這樣的話,我們就知道他的編程底子還不夠扎實(shí),并且對(duì)asp認(rèn)識(shí)也是非常有限的(并且后來(lái)說(shuō)自己asp幾個(gè)常用的基本對(duì)象都不知道,也沒(méi)有用過(guò),我差點(diǎn)被氣暈過(guò)去——連這都沒(méi)有用過(guò),還跟我談asp很弱,看來(lái)...白長(zhǎng)著么大了,連“沒(méi)有根據(jù),沒(méi)有發(fā)言權(quán)”都不懂!呵呵...),所以,我一氣之下,在那個(gè)周末就把a(bǔ)sp編碼互轉(zhuǎn)的問(wèn)題給實(shí)現(xiàn)了,讓他見(jiàn)識(shí)見(jiàn)識(shí)什么是asp,竟然這么看不起asp,想著就火大!當(dāng)然,我的這個(gè)研究也同時(shí)填補(bǔ)了到目前為止關(guān)于asp開(kāi)發(fā)中編碼轉(zhuǎn)換研究的空白!

現(xiàn)在,我們開(kāi)始轉(zhuǎn)入正題,首先,我們了解一下編碼轉(zhuǎn)換的過(guò)程,一段文字的編碼如果要轉(zhuǎn)換,我們就要知道當(dāng)前文字所對(duì)應(yīng)的編碼集,然后用對(duì)應(yīng)的編碼集去讀取,這是編碼正確被轉(zhuǎn)換的前提(如果這步弄錯(cuò)了,那么轉(zhuǎn)換出來(lái)的就會(huì)是一連串亂碼)!好了,找對(duì)了當(dāng)前編碼,并且正確讀取出來(lái)了以后,我們就可以用設(shè)定好目標(biāo)編碼的Stream對(duì)象去保存這個(gè)內(nèi)容到指定文件中了,到這里我們的編碼轉(zhuǎn)換就成功了!
下面我們來(lái)看一下asp編碼轉(zhuǎn)換的具體代碼實(shí)現(xiàn):
復(fù)制代碼 代碼如下:

'轉(zhuǎn)換編碼 content 要轉(zhuǎn)換編碼的內(nèi)容, cset 目標(biāo)編碼, dest 目標(biāo)文件絕對(duì)路徑
Function TransferCharSet(content, cset, dest)
Dim Objstream
Set Objstream = Server.CreateObject("adodb.stream")
objstream.Mode =3
objstream.Charset = cset
objstream.Type = 2
objstream.Open
objstream.WriteText content
objstream.Position = 0
objstream.SaveToFile dest,2
objstream.Close
set objstream = nothing
End Function
'用對(duì)應(yīng)編碼讀取指定內(nèi)容
Function getcontent(path)
Dim Objstream
Set Objstream = Server.CreateObject("Adodb.Stream")
objstream.Charset = GetCharSetName(path)
objstream.Type = 2
objstream.Mode =3
'objstream.Charset = code
objstream.Open
Objstream.LoadFromFile path
objstream.Position = 0
getcontent = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'取得指定內(nèi)容的編碼名稱
Function GetCharSetName(path)
Set objstream=server.createobject("Adodb.Stream")
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfile path
bintou=objstream.read(2)
If AscB(MidB(bintou,1,1))=HEF And AscB(MidB(bintou,2,1))=HBB Then
GetCharSetName="utf-8"
ElseIf AscB(MidB(bintou,1,1))=HFF And AscB(MidB(bintou,2,1))=HFE Then
GetCharSetName="unicode"
Else
GetCharSetName="gb2312"
End If
objstream.close
Set objstream=nothing
End Function

好了,經(jīng)過(guò)這樣一段代碼,我們的轉(zhuǎn)換工作就完成了!希望這篇文章能給asp愛(ài)好者以及其他語(yǔ)言愛(ài)好者帶來(lái)一些幫助和啟發(fā)。
最后,我想說(shuō)的是,編程語(yǔ)言的學(xué)習(xí)和使用并不難,重要的是自己多動(dòng)腦筋,想想自己需要的功能怎么去實(shí)現(xiàn),而不是怨天尤人,說(shuō)這個(gè)語(yǔ)言太弱了之類的話。
好了,祝大家編程并快樂(lè)著,關(guān)于asp的編碼轉(zhuǎn)換先寫到這里,以后我還會(huì)推出更精彩的個(gè)人原創(chuàng)文章,謝謝大家!

標(biāo)簽:江蘇 衡水 衢州 大理 萍鄉(xiāng) 棗莊 蚌埠 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp 編碼互轉(zhuǎn)的研究和實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266