asp下UTF 8頁面亂碼的解決方法

2022-09-24 13:51:08 字數 1516 閱讀 7852

為什麼在asp裡指定了codepage為65001還經常顯示亂碼.才子在這裡將這個問題詳細解釋一下,以免很多朋友再走彎路,甚至排斥utf-8.

如果你還不知道utf-8是什麼東東,那才子建議你先去搜尋一下utf-8的相關資料吧.

utf-8編碼之所以被越來越多的人接受甚至喜歡,肯定是有道理的,在web2.0盛行的今天,在大談多瀏覽器相容的同時,不得不想到字元編碼不同所造成的亂碼現象同樣需要得到很好的處理.....

在n年以前,ie6以下的所有版本,只要沒有安裝相應的字型檔,訪問相關的頁面都是會亂碼的,例如,我是ie5 (windows2000預設) 的版本,在沒有安裝ie繁體字庫的情況下,訪問任何繁體頁面的**都是會亂碼的,當然前提是該頁面採用了big5的charset,而utf-8作為一種國際編碼就能很好的處理該問題www.cppcns.com,只要將頁面存為utf-8編碼格式,再在頁面上將codepage及charset全部定義為utf-8就可以在任何客戶端瀏覽器中顯示出完全正確的內容,完全不會亂碼......

好了,才子這裡以asp頁面為例,以乙個例項來看具體操作吧:

在這才子推薦用editplus來寫**,才子也專門寫過一篇editplus的使用教程,有興趣的朋友可以 點選這裡 去看看.

開啟新建乙個asp頁面,相信玩asp的朋友都會留意到,許多**的原始碼裡,頁面最上方一般都有一句:

前面的language應該不用多說了,vbscript就是asp預設的指令碼語言,其實完全可以不用寫,寫了好像還會影響頁面執行效率,在這裡我們先不討論這個問題. 後面的codepage就是關鍵了,目的就是告訴瀏覽器,此頁面是何種編碼,936代表是簡體中文,而950代表正體中文,65001就是我們今天說的utf-8編碼了.我們將936改成65001,整句如下:

再加上輸出幾個中文字看看能程式設計客棧不能正確顯示吧.

response.write "第一次測試utf-8頁面"

%>

ok,直接點選"儲存",執行這個頁面看看,如果不出意外,大家可能看到顯示出的是 "一尾utf-8頁" 這幾個字,中文有亂碼的現象,什麼原因呢?

ok,請大家再點選最上面的 "檔案" 選單,選擇"另存為",最下面一行有個編碼,預設應該是a程式設計客棧nsi的,請大家點下拉框,選擇utf-8,再點儲存,再執行試試看,如果不出意外,亂得更厲害了,呵呵,暈了吧.別急,想想原因,因為我們做的頁面是html返回的,以前我們寫html時,看到body前面,也就是head裡都有一句meta,應該是這樣的:

也就是指定頁面以gb2312編碼返回結果,一定要寫在有返回結果輸出的前面.大家都知道gb2312是簡體中文吧,我們今天說的是utf-8編碼,我們就將gb2312改成utf-8吧,全部**如下:

response.write "第一次測試utf-8頁面"

%>

再執行看看,嗯,這次正常顯示了吧.......

結論:採用utf-8編碼,除了要將檔案另存為utf-8格式之外,還需要同時指定codepage及charset. 

本文標題: asp下utf-8頁面亂碼的解決方法

本文位址: /wangluo/asp/36837.html

UTF 8亂碼解決

在解決亂碼問題前,必須先搞清楚幾個相關的問題。為每個jsp頁面設定了其編碼格式 utf 8 但傳遞資料到另一頁麵時依然顯示為亂碼?首先要需要了解的是web容器預設編碼是iso 8859 1,乙個漢字占用兩個位元組,而在utf 8中乙個漢字占用三個位元組。所以在資料傳遞過程中,必須手動設定容器編碼格式...

《轉》亂碼UTF8和UTF 8網頁編碼

曾經被字符集間複雜的轉換搞怕了,正好新專案要求國際化,需要能夠顯示多種語言,於是一開始就規定統統使用 utf 8 編碼。所有 檔案使用 utf 8 編碼存檔 mysql資料庫所有表,所有字段設定 collation 中文翻譯為 整理 屬性為 utf8 general ci 所有頁面輸出 即便是這樣,...

utf 8亂碼解決方案

在解決亂碼問題前,必須先搞清楚幾個相關的問題。為每個jsp頁面設定了其編碼格式 utf 8 但傳遞資料到另一頁麵時依然顯示為亂碼?首先要需要了解的是web容器預設編碼是iso 8859 1,乙個漢字占用兩個位元組,而在utf 8中乙個漢字占用三個位元組。所以在資料傳遞過程中,必須手動設定容器編碼格式...