1. 程式人生 > 程式設計 >asp中response.write('中文')或者js中文亂碼問題

asp中response.write('中文')或者js中文亂碼問題

我的所有網頁編碼是utf-8,當開啟瀏覽器不對資料庫插入資料時(main.asp),直接讀取資料進行瀏覽(showAll.asp),一切正常;但是當在main.asp通過ajax把資料插入到access表時,再去瀏覽showAll.asp頁面時,凡是Response.Write('中文')語句中的內容都是亂碼,即使showAll.asp頁面不包含從資料庫來的資料,也是一樣全部是亂碼。當把瀏覽後的網頁原始碼用筆記本編輯時,發現他的編碼變成了ANSI。

所以只需要在showAll.asp頁面的前面加上

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>

<%Session.CodePage=65001%>即可解決問題。

如果您的網頁是基於UTF-8編碼的,請在程式碼第一行加入:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>

如果您的網頁是基於GB2312編碼的,請在程式碼第一行加入:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>

注:我就是通過此方法解決了ASP亂碼的.這裡大家要注意點2點
1.<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%> 這行程式碼一定要放到頁面的第一行

這是重點:

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的方法

為了適應xmlhttp控制元件的需要,這個控制元件只有在獲得utf-8編碼的網頁內容的時候,responseText才能得到正確輸出,試了各種方法,甚至在asp伺服器上用adodb.steam來轉碼,後來看到一篇文章,只要在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))

接下來用 response.write 直接輸出內容即可,客戶端將得到以utf-8編碼的內容

response.write 輸出亂碼的解決方法

在很多時候,我們都會不太注意一些細節的問題,

例如在asp的開發過程中,最讓人頭痛的就是網頁的解碼問題

我現在開發的都是一些繁體中文的網站,而且公司規定要用utf-8這個國際解碼,

於是解碼問題就會整體纏著你不放了··

我們不要看小<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

這句程式碼,因為這句程式碼是很有用的,特別是在解碼方面,比如很多人在使用response.write這個方法輸出中文字串的時候會出現亂碼,並且不管你怎樣新增response.charset="utf-8" 、session.codepage=65001都無補於事,於是我們就需要<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

當然response.charset="utf-8" 、session.codepage=65001這兩句也不能少;

但是雖然asp程式碼所需要的條件都齊全了,但是我們不要忘了網頁本身需要的條件;

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

這個HTML網頁所需要的解碼設定的條件;當然,這是asp程式碼和html程式碼混合的檔案所需要的;

如果是純asp程式碼的asp檔案可以不要;

再一個就是檔案本身還得必須是utf-8的解碼;

如果這個大家不知道在哪裡看的話;大家可以用記事本開啟的asp檔案;另存為,如果編碼是ANSI的話,將其改為utf-8即可,

這些條件都滿足了之後,我想就應該不會出現亂碼了;