Asp 編碼互轉的研究和實現代碼

來源:互聯網
上載者:User

文章背景:
某天,我的一個同事給我看了CSDN上面的一篇關於程式設計語言熱門排行榜的文章,裡面我看到VB還是排名很不錯的,我就說,asp(vbscript)確實挺不錯。結果他就反駁我,說asp不好,很多東西很難實現。我說比如哪些東西?我開發了幾年的asp都沒有發現很難實現的東西,除非是屬於非指令碼語言範圍內的,比如多線程的應用(當然,asp也可以類比實現多線程任務)等。結果他說了什麼多線程,還有編碼轉換等,說自己曾經為了轉換編碼費了很大精力卻沒有成功過,所以覺得asp太弱。聽到這樣的話,我們就知道他的編程底子還不夠紮實,並且對asp認識也是非常有限的(並且後來說自己asp幾個常用的基本對象都不知道,也沒有用過,我差點被氣暈過去——連這都沒有用過,還跟我談asp很弱,看來...白長著麼大了,連“沒有根據,沒有發言權”都不懂!呵呵...),所以,我一氣之下,在那個周末就把asp編碼互轉的問題給實現了,讓他見識見識什麼是asp,竟然這麼看不起asp,想著就火大!當然,我的這個研究也同時填補了到目前為止關於asp開發中編碼轉換研究的空白!

現在,我們開始轉入正題,首先,我們瞭解一下編碼轉換的過程,一段文字的編碼如果要轉換,我們就要知道當前文字所對應的編碼集,然後用對應的編碼集去讀取,這是編碼正確被轉換的前提(如果這步弄錯了,那麼轉換出來的就會是一連串亂碼)!好了,找對了當前編碼,並且正確讀取出來了以後,我們就可以用設定好目標編碼的Stream對象去儲存這個內容到指定檔案中了,到這裡我們的編碼轉換就成功了!
下面我們來看一下asp編碼轉換的具體代碼實現: 複製代碼 代碼如下:'轉換編碼 content 要轉換編碼的內容, cset 目標編碼, dest 目標檔案絕對路徑
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
'用對應編碼讀取指定內容
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
'取得指定內容的編碼名稱
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

好了,經過這樣一段代碼,我們的轉換工作就完成了!希望這篇文章能給asp愛好者以及其他語言愛好者帶來一些協助和啟發。
最後,我想說的是,程式設計語言的學習和使用並不難,重要的是自己多動腦筋,想想自己需要的功能怎麼去實現,而不是怨天尤人,說這個語言太弱了之類的話。
好了,祝大家編程並快樂著,關於asp的編碼轉換先寫到這裡,以後我還會推出更精彩的個人原創文章,謝謝大家!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.