| 網(wǎng)站可以同時使用UTF-8與GB2312兩種編碼嗎? |
| 發(fā)布時間:2023/4/3 16:24:40 來源:飛網(wǎng)設(shè)計 瀏覽次數(shù):22080 |
同一網(wǎng)站UTF-8與GB2312兩種編碼頁面避免亂碼的方法
同一個網(wǎng)站有兩種編碼,怎么辦?我有一個英語培訓(xùn)網(wǎng)站,大部分已經(jīng)完工了,是用gb2312的,現(xiàn)在音標(biāo)顯示不正確,不可能再重新用utf編碼,因為這樣改的話,會出現(xiàn)很多亂碼的,所以只能單獨(dú)將音標(biāo)的頁面改為utf。結(jié)果在從主站轉(zhuǎn)向音標(biāo)的頁面時就會出現(xiàn)亂碼,
在網(wǎng)上搜索了一些方法,一般的沒有太大效果。總結(jié)了一些出現(xiàn)亂碼的原因有如下幾種可能:
1、GB2312頁面沒有在頭部設(shè)置charset=GB2312
2、如果設(shè)置了charset=GB2312 ,嘗試在ASP源碼頭部加上
復(fù)制內(nèi)容到剪貼板 程序代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
其中 936為GB2312 ; 65001為UTF-8
3、因為程序沒有設(shè)置讀取數(shù)據(jù)庫時所使用的編碼類型,所以打開數(shù)據(jù)庫時就會直接讀取上一次所使用的編碼類型。如先打開UTF-8頁面,數(shù)據(jù)庫按照UTF-8讀取數(shù)據(jù)庫內(nèi)容。而在此時您再打開GB2312頁面時,因為沒有設(shè)置服務(wù)器按照剛剛使用過的編碼類型即UTF-8讀取數(shù)據(jù)庫。這就造成打開的頁面內(nèi)容除數(shù)據(jù)庫內(nèi)容外正常顯示,所有數(shù)據(jù)庫內(nèi)容顯示亂碼的原因的。
而我網(wǎng)站上所出現(xiàn)的問題也就是第三種,因為一般比較成熟的程序代碼都會設(shè)置前兩項,而第三項是大部分程序設(shè)計人員所忽略的。
解決方法也很簡單只要在亂碼的那個程序源代碼設(shè)置一下就行了:
UTF-8設(shè)置方法(data/data.mdb為數(shù)據(jù)庫地址)
復(fù)制內(nèi)容到剪貼板 程序代碼
<%
response.codepage=65001
response.charset="UTF-8"
set conn = server.CreateObject("adodb.connection")
on error resume next
conn.Open "driver={microsoft access driver (*.mdb)}; dbq=" & server.MapPath("data/data.mdb")
%>
GB2312設(shè)置方法(data/data.mdb為數(shù)據(jù)庫地址)
復(fù)制內(nèi)容到剪貼板 程序代碼
<%
response.codepage=936
response.charset="GB2312"
set conn = server.CreateObject("adodb.connection")
on error resume next
conn.Open "driver={microsoft access driver (*.mdb)}; dbq=" & server.MapPath("data/data.mdb")
%>
|
|