今天在用utf-8編碼用在新的網(wǎng)站上,不想問題還真多,所以找了些文章,帖子,看了看,等下有用的就貼下面了。
今天,我開始把 CODEPAGE="936" 改成 CODEPAGE="65001"
把charset=gb2312改成 charset=utf-8
可是還是亂碼,只要是腳本用的地方還是亂碼,現(xiàn)在終于找到問題了,就是當(dāng)腳本輸出時候,要以utf-8編碼輸出。
就是要加一句<% Response.Charset = "utf-8" %>
①首先當(dāng)然是頁面本身用utf-8編碼,在DW新建頁時默認(rèn)編碼定為“Unicode(UTF-8)”
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
' ②CODEPAGE="65001" 告訴服務(wù)器頁面使用UTF-8編碼的
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
' ③charset=utf-8告訴瀏覽器頁面使用UTF-8編碼的
</head>
<body>
<% Response.Charset = "utf-8" %>
' ④服務(wù)器輸出編碼為utf-8
</body>
</html>
暈,事情還沒有結(jié)束
剛開心,問題出來了,刷新后又變成亂碼,或者瀏覽其他的gb2312的頁面回來又亂碼了。值得又去google了一下,呵呵,還是找到答案了
看看下面的文字,就知道了,所有在后來我加了這個,程序頂端
<%Session.CodePage=65001%>
<%@ codepage=936%>簡體中文
<%@ codepage=950%>繁體中文
<%@ codepage=65001%>UTF-8
codepage指定了IIS按什么編碼讀取傳遞過來的串串(表單提交,地址欄傳遞等)。
出亂碼的原因也就是網(wǎng)站要整合的時候模塊編碼不一樣引起的。
不要轉(zhuǎn)換任何模塊網(wǎng)頁的編碼該utf-8的還是utf-8,該Gb22312的還是Gb2312
將GB2312模塊的conn.asp文件中加入了以下這段代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
一切OK!
同樣在在Utf-8模塊的包文件(如conn.asp,但是要注意conn.asp必須是在第一行調(diào)用)最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>
這幾天寫東西時總是遇到亂碼,郁悶,以前從來沒研究過編碼,只是拿過語句直接用!下午經(jīng)過研究后我得出以下結(jié)論!
首先,選擇編碼:你必須按照你頁面的內(nèi)容選擇編碼,不過建議前臺后臺都使用utf-8編碼,方法是在conn.asp中加入:
引用
<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
就可以解決亂碼隱患,或者在每個頁面一開始加入:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
如果有小的頁面,直接ASP服務(wù)端聲明<%Response.Charset="utf-8"%>,這樣基本可以解決亂碼問題!
其次,如果某個頁面不用utf-8編碼,直接加上:<%Response.Charset="GB2312"%>
還有個問題,就是某個頁面是utf-8編碼,而另外一個頁面是GB2312編碼,如何實(shí)現(xiàn)跳轉(zhuǎn)而沒有亂碼。方法是:
給GB2312頁面設(shè)置:Session.CodePage=936;或者直接用response.redirect實(shí)現(xiàn)跳轉(zhuǎn).
另外,基本常識:
<%@ codepage=936%>簡體中文
<%@ codepage=950%>繁體中文
<%@ codepage=65001%>UTF-8