我的所有網(wǎng)頁(yè)編碼是utf-8,當(dāng)打開瀏覽器不對(duì)數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí)(main.asp),直接讀取數(shù)據(jù)進(jìn)行瀏覽(showAll.asp),一切正常;但是當(dāng)在main.asp通過(guò)ajax把數(shù)據(jù)插入到access表時(shí),再去瀏覽showAll.asp頁(yè)面時(shí),凡是Response.Write('中文')語(yǔ)句中的內(nèi)容都是亂碼,即使showAll.asp頁(yè)面不包含從數(shù)據(jù)庫(kù)來(lái)的數(shù)據(jù),也是一樣全部是亂碼。當(dāng)把瀏覽后的網(wǎng)頁(yè)源碼用筆記本編輯時(shí),發(fā)現(xiàn)他的編碼變成了ANSI。
所以只需要在showAll.asp頁(yè)面的前面加上
%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
%Session.CodePage=65001%>
%Session.CodePage=65001%>即可解決問(wèn)題。
如果您的網(wǎng)頁(yè)是基于UTF-8編碼的,請(qǐng)?jiān)诖a第一行加入:
%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
如果您的網(wǎng)頁(yè)是基于GB2312編碼的,請(qǐng)?jiān)诖a第一行加入:
%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>
注:我就是通過(guò)此方法解決了ASP亂碼的.這里大家要注意點(diǎn)2點(diǎn)
1.%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%> 這行代碼一定要放到頁(yè)面的第一行
這是重點(diǎn):
2.%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>和meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>和meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
response.write 輸出 utf-8的方法
為了適應(yīng)xmlhttp控件的需要,這個(gè)控件只有在獲得utf-8編碼的網(wǎng)頁(yè)內(nèi)容的時(shí)候,responseText才能得到正確輸出,試了各種方法,甚至在asp服務(wù)器上用adodb.steam來(lái)轉(zhuǎn)碼,后來(lái)看到一篇文章,只要在asp中加入以下代碼即可,一試,果然成功!只是不清楚為什么。
Response.ContentType="text/html"
Response.AddHeader"Content-Type","text/html;charset=UTF-8"
Response.CodePage=65001
Response.CharSet="UTF-8"
Response.BinaryWrite(chrb(239))
Response.BinaryWrite(chrb(187))
Response.BinaryWrite(chrb(191))
接下來(lái)用 response.write 直接輸出內(nèi)容即可,客戶端將得到以u(píng)tf-8編碼的內(nèi)容
response.write 輸出亂碼的解決方法
在很多時(shí)候,我們都會(huì)不太注意一些細(xì)節(jié)的問(wèn)題,
例如在asp的開發(fā)過(guò)程中,最讓人頭痛的就是網(wǎng)頁(yè)的解碼問(wèn)題
我現(xiàn)在開發(fā)的都是一些繁體中文的網(wǎng)站,而且公司規(guī)定要用utf-8這個(gè)國(guó)際解碼,
于是解碼問(wèn)題就會(huì)整體纏著你不放了··
我們不要看小%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
這句代碼,因?yàn)檫@句代碼是很有用的,特別是在解碼方面,比如很多人在使用response.write這個(gè)方法輸出中文字符串的時(shí)候會(huì)出現(xiàn)亂碼,并且不管你怎樣添加response.charset="utf-8" 、session.codepage=65001都無(wú)補(bǔ)于事,于是我們就需要%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
當(dāng)然response.charset="utf-8" 、session.codepage=65001這兩句也不能少;
但是雖然asp代碼所需要的條件都齊全了,但是我們不要忘了網(wǎng)頁(yè)本身需要的條件;
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
這個(gè)HTML網(wǎng)頁(yè)所需要的解碼設(shè)定的條件;當(dāng)然,這是asp代碼和html代碼混合的文件所需要的;
如果是純asp代碼的asp文件可以不要;
再一個(gè)就是文件本身還得必須是utf-8的解碼;
如果這個(gè)大家不知道在哪里看的話;大家可以用記事本打開的asp文件;另存為,如果編碼是ANSI的話,將其改為utf-8即可,
這些條件都滿足了之后,我想就應(yīng)該不會(huì)出現(xiàn)亂碼了;