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