1. 程式人生 > >網站建設ASP中UTF-8與GB2312編碼轉換亂碼問題的解決方法

網站建設ASP中UTF-8與GB2312編碼轉換亂碼問題的解決方法

現在blog程式一般都是utf-8編碼的,要在網站里加入其它的程式的話,如果不是utf-8而是gb2312的話,在頁面轉換的時候很容易出現開啟的頁面時亂碼,經過查詢資料和測試,總結出現在最好的一個方法,先了解一下基礎的程式碼:
<%@ codepage=65001%>UTF-8
<%@ codepage=936%>簡體中文
<%@ codepage=950%>繁體中文
<%@ codepage=437 %>美國/加拿大英語
<%@ codepage=932 %>日文
<%@ codepage=949 %>韓文
<%@ codepage=866 %>俄文

Codepage指定了IIS按什麼編碼讀取傳遞過來的串串(表單提交,位址列傳遞等)。出亂碼的原因也就是網站要整合的時候模組編碼不一樣引起的。就像我的部落格一樣,整合的時候都會出這個問題,因為BLOG是Utf-8的,近來很多網友都在為這個問題諮詢,我嘗試了很多種方法。最方便的方法如下:
不要轉換任何模組網頁的編碼該utf-8的還是utf-8,該Gb22312的還是Gb2312,在Utf-8模組的包檔案(如conn.asp,但是要注意conn.asp必須是在第一行呼叫)最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>

在GB2312模組的包檔案最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>,其他編碼的類推。
如果你用的資料庫是MS SQL的時候簡體和繁體都要記得編碼用:Chinese_PRC_CI_AS
 
大家都知道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  如圖:

最簡單的辦法可使用記事本來開啟並儲存UFT-8...

再執行看看,嗯,這次正常顯示了吧……
  結論:採用UTF-8編碼,除了要將檔案另存為UTF-8格式之外,還需要同時指定CodePage及Charset。
 
ASP + ACCESS + FSO + UTF-8,中文亂碼解決方案筆記
有人說不要用FSO讀寫檔案,換成ADODB.Stream,使用.Charset = "utf-8",就不會出現亂碼了。但是我照樣出現亂碼,看來這也不是最好的辦法。
powered by 25175.net
 
我的解決辦法是,加上這句:Session.CodePage="65001"(使用一次就OK了,後來(重啟一遍)去掉也沒出現亂碼,怎麼回事?)
 
總結:
 
1、所有檔案採用utf-8儲存;
 
2、ASP檔案加上以下三行程式碼:
 
①、<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>,第一行
 
②、<%Session.CodePage="65001"%>,建議第二行
 
③、<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,head區
 
第一步:修改 commond.asp 檔案,將檔案的前4行,也就是 '定義 Cookie,Application 域 前面的程式碼用以下程式碼替換:powered by 25175.net
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Option Explicit
Response.Buffer = True
Server.ScriptTimeOut = 90
Session.CodePage=936

參考的是:
如果製作的網頁尾本與WEB服務端的預設內碼表不同,則必須指明內碼表:
codepage=936 簡體中文GBK
codepage=950 繁體中文BIG5
codepage=437 美國/加拿大英語
codepage=932 日文
codepage=949 韓文
codepage=866 俄文
codepage=65001 unicode UFT-8
第二步:把所有的

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

改成

<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

再另存為ANSI

GB2312轉換為UTF-8編碼的方法
第一步:
修改 commond.asp 檔案,將檔案的前4行,也就是 '定義 Cookie,Application 域 前面的程式碼用以下程式碼替換:
程式程式碼:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit
Response.Buffer=True
Session.CodePage=65001
Server.ScriptTimeOut = 90

然後修改 header.asp 和 admincp.asp 還有 attachment.asp 檔案 找到:
程式程式碼:
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

修改為:
程式程式碼:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

第二步:
將BLOG的所有ASP和JS檔案,用記事本開啟,然後另存為,編碼本來是預設, 選擇成UTF-8就可以了