您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Asp.net中Response.Charset與Response.ContentEncoding有什么區(qū)別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1.Response.Charset
ASP.NET 中示例:
<%@ Page CodePage=936 %>
CodePage 告訴 IIS 按什么編碼來(lái)讀取 QueryString,按什么編碼轉(zhuǎn)換數(shù)據(jù)庫(kù)中的內(nèi)容……
2.Response.ContentEncoding
獲取或設(shè)置輸出流的 HTTP 字符集。
Response.Charset
獲取或設(shè)置輸出流的 HTTP 字符集。微軟對(duì) ContentEncoding、Charset 的解釋是一字不差,其實(shí)可以這樣理解:ContentEncoding 是標(biāo)識(shí)這個(gè)內(nèi)容是什么編碼的,而 Charset 是告訴客戶(hù)端怎么顯示的。
我們可以做一個(gè)示例來(lái)理解:
示例1.
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.Charset = "utf-8"; Response.Write("億速云");
然后用瀏覽器打開(kāi)網(wǎng)頁(yè),可以發(fā)現(xiàn)是亂碼,可是用記事本查看源文件,又發(fā)現(xiàn)不是亂碼。這就說(shuō)明了:ContentEncoding 是管字節(jié)流到文本的,而 Charset 是管在瀏覽器中顯示的。
示例2.
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
通過(guò) Fidller,發(fā)現(xiàn) HTTP 頭中是:text/html; charset=gb2312。說(shuō)明沒(méi)有指定 Charset 時(shí),就用 ContentEncoding 的 Charset 作為 charset。
示例3.
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.Charset = "123-8";
HTTP 頭中是:text/html; charset=123-8。網(wǎng)頁(yè)顯示正常,說(shuō)明如果 charset 錯(cuò)誤,仍然以 ContentEncoding 的 Charset 作為 charset。
示例4.
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.Charset = "";
HTTP 頭中是:text/html;。HTTP 頭中沒(méi)有 charset,網(wǎng)頁(yè)顯示正常,說(shuō)明 HTTP 頭中沒(méi)有 charset,仍然以 ContentEncoding 的 Charset 作為 charset。
補(bǔ)充:
一.Response.ContentType
獲取或設(shè)置輸出流中 HTTP 的 MIME 類(lèi)型,比如:text/xml、text/html、application/ms-word。瀏覽器根據(jù)不同的內(nèi)容啟用不同的引擎,比如 IE6 及以上版本中就會(huì)自動(dòng)將 XML 做成樹(shù)狀顯示。
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
這是 HTML 中的標(biāo)簽,不能用在 XML、JS 等文件中,它是告訴瀏覽器網(wǎng)頁(yè)的 MIME、字符集。當(dāng)前面的相關(guān)內(nèi)容沒(méi)有指定時(shí),瀏覽器通過(guò)此來(lái)判斷。
二.使用流形成一個(gè)word文件例子
protected void btnResponseWord_Click(object sender, EventArgs e) { Response.Clear(); //清空無(wú)關(guān)信息 Response.Buffer= true; //完成整個(gè)響應(yīng)后再發(fā)送 Response.Charset = "GB2312";//設(shè)置輸出流的字符集-中文 Response.AppendHeader("Content-Disposition","attachment;filename=Report.doc");//追加頭信息 Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//設(shè)置輸出流的字符集 Response.ContentType = "application/ms-word ";//輸出流的MIME類(lèi)型 Response.Write(TextBox1.Text); Response.End();//停止輸出 }
三.Response.AppendHeader使用
@文件下載,指定默認(rèn)名
Response.AddHeader("content-type","application/x-msdownload"); Response.AddHeader("Content-Disposition","attachment;filename=要下載的文件名.rar");
@刷新頁(yè)面
Response.AddHeader "REFRESH", "60;URL=newpath/newpage.asp"
這等同于客戶(hù)機(jī)端<META>元素:
<META HTTP-EQUIV="REFRESH", "60;URL=newpath/newpage.asp"
@頁(yè)面轉(zhuǎn)向
Response.Status = "302 Object Moved" Response.Addheader "Location", "newpath/newpage.asp"
這等同于使用Response.Redirect方法:
Response.Redirect "newpath/newpage.asp"
@強(qiáng)制瀏覽器顯示一個(gè)用戶(hù)名/口令對(duì)話框
Response.Status= "401 Unauthorized" Response.Addheader "WWW-Authenticate", "BASIC"
強(qiáng)制瀏覽器顯示一個(gè)用戶(hù)名/口令對(duì)話框,然后使用BASIC驗(yàn)證把它們發(fā)送回服務(wù)器(將在本書(shū)后續(xù)部分看到驗(yàn)證方法)。
@如何讓網(wǎng)頁(yè)不緩沖
Response.Expires = 0 Response.ExpiresAbsolute = Now() - 1 Response.Addheader "pragma","no-cache" Response.Addheader "cache-control","private" Response.CacheControl = "no-cache
看完上述內(nèi)容,你們對(duì)Asp.net中Response.Charset與Response.ContentEncoding有什么區(qū)別有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。