網站出現亂碼的解決方法

閱讀 ?·? 發布日期 2020-06-29 17:07 ?·? admin

網站顯示出現亂碼的情況,通常是由于編碼不統一引起,因此為了避免出現亂碼,就必須讓網頁編碼與輸入編碼格式統一,在做多國語言版時跟應注意這個問題。西寧網站建設網站設計西寧網站制作★網頁設計-599元全包;企業網絡推廣☆西寧網站優化seo☆關鍵詞排名☆百度快照-2200元全年展示;做網站優化排名-西寧網站建設公司?13172194676(注:選好網站模板,請聯系客服,百度云盤下載提取網站模板)

做英文版如果用GB2312,雖然在簡體中文版的操作系統上正常,但是在繁體操作系統上就可能看到亂碼現象,因此制作多國語言最好用utf-8格式。

打開新建一個ASP頁面,相信玩ASP的朋友都會留意到,許多下載的源碼里,頁面最上方一般都有一句:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>前面的language應該不用多說了,vbscript就是ASP默認的腳本語言,其實完全可以不用寫,寫了好像還會影響頁面執行效率,在這里我們先不討論這個問題. 后面的codepage就是關鍵了,目的就是告訴瀏覽器,此頁面是何種編碼,936代表是簡體中文,而950代表繁體中文,65001就是我們今天說的 UTF-8編碼了.我們將936改成65001,整句如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
再加上輸出幾個中文字看看能不能正確顯示吧.
<%
Response.Write "第一次測試UTF-8頁面"
%>
OK,直接點擊"保存",執行這個頁面看看,如果不出意外,大家可能看到顯示出的是 "一尾UTF-8頁" 這幾個字,中文有亂碼的現象,什么原因呢?
OK,請大家再點擊最上面的 "文件" 菜單,選擇"另存為",最下面一行有個編碼,默認應該是ANSI的,請大家點下拉框,選擇UTF-8,再點保存,再執行試試看,如果不出意外,亂得更厲害了,呵呵,暈了吧.別急,想想原因,因為我們做的頁面是HTML返回的,以前我們寫HTML時,看到body前面,也就是head里都有一句meta,應該是這樣的:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
也就是指定頁面以gb2312編碼返回結果,一定要寫在有返回結果輸出的前面.大家都知道gb2312是簡體中文吧,我們今天說的是UTF-8編碼,我們就將gb2312改成UTF-8吧,全部代碼如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
Response.Write "第一次測試UTF-8頁面"
%>
再看,這次正常了。

得出結論:采用UTF-8編碼,除了要將文件另存為UTF-8格式之外,還需要同時指定codepage及charset.

但有了這些還不夠,在制作過程中還會出現一些亂碼的問題。為了。保證asp葉面一定不會出現亂碼的代碼應該是這樣的:<%@ CODEPAGE=65001 %> 
<% Response.CodePage=65001%> 
<% Response.Charset="UTF-8" %> 


建議:可以建立公共文件code.asp,或則直接寫到習慣的conn.asp中。

ASP程序在同一個站點中,如果出現UTF-8編碼的程序,又有GB2312的程序,在瀏覽完UTF-8編碼的頁面后,再瀏覽GB2312的頁面,GB2312編碼的頁面就會出現亂碼. 

出現這樣的問題,可能是:當你瀏覽UTF-8編碼的時候,服務器默認用UTF-8的引擎來輸出html,當你用再瀏覽GB2312的頁面時,它還是用UTF-8來輸出本應是GB2312編碼的頁面.所以會亂碼. 

如果要將他們轉為同一種編碼可能會很痛苦. 

還有一種解決方法是:不用作任何轉換,保持原來的編碼不變.在Utf-8程序的第一行加上:

 

CODE:  [Copy to clipboard]
<%Session.CodePage=65001%>

 


在GB2312程序的第一行加上

 

CODE:  [Copy to clipboard]
<%Session.CodePage=936%>



    這樣就可以了.當然如果你的所有程序都在第一行include 一個文件的話,把上面的代碼放在被include 的文件第一行就馬上解決問題了. 
Session.CodePage是指定服務器用哪種編輯來輸出.有了它的聲明,服務器就不會用默認的編碼引擎來輸出了.