在windows操作系統上使用(yòng)IE作爲浏覽器時(shí)。常常會發生這(zhè)樣的(de)問題:在浏覽使用(yòng)UTF-8編碼的(de)網頁時(shí),浏覽器無法自動偵測(即沒有設定“自動選擇”編碼格式時(shí))該頁面所用(yòng)的(de)編碼。
即使網頁已經聲明(míng)過編碼格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
由此造成某些含有中文UTF-8編碼的(de)頁面産生空白輸出。
如果使用(yòng)的(de)是Mozilla、Mozilla 浏覽器、Sarafi的(de)浏覽器這(zhè)不會造成這(zhè)個(gè)問題。這(zhè)是由于IE解析網頁編碼時(shí)以HTML内的(de)标簽優先,而後才是HTTP header内的(de)訊息;而mozilla系列的(de)浏覽器則剛剛相反。
由于UTF-8爲3個(gè)字節表示一個(gè)漢字,而普通(tōng)的(de)GB2312或BIG5是兩個(gè)。頁面輸出時(shí),由于上述原因,使浏覽器解析、輸出<title></title>的(de)内容時(shí),如果在</title>前有奇數個(gè)全角字符時(shí),IE把UTF-8當作兩個(gè)字節解析時(shí)出現半個(gè)漢字的(de)情況,這(zhè)時(shí)該半個(gè)漢字會和(hé)</title>的(de)<結合成一個(gè)亂碼字,導緻IE無法讀完<title>部分(fēn),使整個(gè)頁面爲空百輸出。而這(zhè)個(gè)時(shí)候如果察看源文件的(de)話(huà),會發現實際上整個(gè)葉面全部已經輸出了(le)。
因此最簡單的(de)解決辦法是在網頁文件的(de)<head></head>标簽中一定要把字符定義
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
UTF-8網頁亂碼問題解決:
<%@codepage="65001"%>
< http-equiv="Content-Type" content="text/html; charset=UTF-8">
一個(gè)也(yě)不能少
另外,文件要存爲utf-8格式的(de)
還(hái)有,程序不能出錯,嘿嘿
要是有錯誤的(de)程序,那麽剛打開的(de)時(shí)候正常的(de),刷新了(le)就亂碼了(le)
這(zhè)裏說的(de)出錯時(shí)不會使整個(gè)頁面不顯示的(de)出錯。
1,<%@codepage="65001"%>
2,< http-equiv="Content-Type" content="text/html; charset=UTF-8">
3,Session.CodePage = 65001
4,文件存成 UTF-8
2,< http-equiv="Content-Type" content="text/html; charset=UTF-8">
=======================================
這(zhè)條比較重要,也(yě)比較常見,這(zhè)個(gè)決定了(le)浏覽者浏覽器選擇哪一種内碼來(lái)訪問你的(de)網頁。
4,文件存成 UTF-8
如果你用(yòng)中文輸入法,網頁裏面出現中文,這(zhè)一條就比較重要了(le).因爲我們用(yòng)普通(tōng)輸入法輸入的(de)文字不是UTF格式的(de),所以要重新保存成 UTF-8格式。
所有從數據庫裏讀的(de)中文字都是亂碼
=====================
1,<%@codepage="65001"%>
出現這(zhè)種事情,請加上這(zhè)句話(huà),其實數據庫跟内碼沒什(shén)麽關系,關鍵是ASP程序用(yòng)什(shén)麽内碼去傳輸你的(de)數據,加上這(zhè)句話(huà),就強制ASP用(yòng)UTF來(lái)傳輸數據。
嘗試在<%@codepage="65001"%>下(xià)加一行:
<%Session.CodePage=65001%>