国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.net中Response.Charset與Response.ContentEncoding區別示例分析

2024-07-10 13:28:02
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Asp.net中Response.Charset與Response.ContentEncoding區別示例分析,對于深入理解Asp.net程序設計有一定的幫助,需要的朋友可以參考下
 
 

本文以示例形式分析了Asp.net中Response.Charset與Response.ContentEncoding的區別,分享給大家供大家參考。具體如下:

1.Response.Charset  
ASP.NET 中示例:

<%@ Page CodePage=936 %>

CodePage 告訴 IIS 按什么編碼來讀取 QueryString,按什么編碼轉換數據庫中的內容……

2.Response.ContentEncoding

獲取或設置輸出流的 HTTP 字符集。

Response.Charset

獲取或設置輸出流的 HTTP 字符集。微軟對 ContentEncoding、Charset 的解釋是一字不差,其實可以這樣理解:ContentEncoding 是標識這個內容是什么編碼的,而 Charset 是告訴客戶端怎么顯示的。

我們可以做一個示例來理解:

示例1.

Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");Response.Charset = "utf-8"; Response.Write("武林網");

然后用瀏覽器打開網頁,可以發現是亂碼,可是用記事本查看源文件,又發現不是亂碼。這就說明了:ContentEncoding 是管字節流到文本的,而 Charset 是管在瀏覽器中顯示的。

示例2.

Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");

通過 Fidller,發現 HTTP 頭中是:text/html; charset=gb2312。說明沒有指定 Charset 時,就用 ContentEncoding 的 Charset 作為 charset。

示例3.

Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");Response.Charset = "123-8";

HTTP 頭中是:text/html; charset=123-8。網頁顯示正常,說明如果 charset 錯誤,仍然以 ContentEncoding 的 Charset 作為 charset。

示例4.

Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");Response.Charset = "";

HTTP 頭中是:text/html;。HTTP 頭中沒有 charset,網頁顯示正常,說明 HTTP 頭中沒有 charset,仍然以 ContentEncoding 的 Charset 作為 charset。

補充:

一.Response.ContentType

獲取或設置輸出流中 HTTP 的 MIME 類型,比如:text/xml、text/html、application/ms-word。瀏覽器根據不同的內容啟用不同的引擎,比如 IE6 及以上版本中就會自動將 XML 做成樹狀顯示。

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

這是 HTML 中的標簽,不能用在 XML、JS 等文件中,它是告訴瀏覽器網頁的 MIME、字符集。當前面的相關內容沒有指定時,瀏覽器通過此來判斷。

二.使用流形成一個word文件例子

protected void btnResponseWord_Click(object sender, EventArgs e){    Response.Clear(); //清空無關信息    Response.Buffer= true; //完成整個響應后再發送    Response.Charset = "GB2312";//設置輸出流的字符集-中文 Response.AppendHeader("Content-Disposition","attachment;filename=Report.doc");//追加頭信息    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//設置輸出流的字符集    Response.ContentType = "application/ms-word ";//輸出流的MIME類型    Response.Write(TextBox1.Text);    Response.End();//停止輸出}

三.Response.AppendHeader使用

@文件下載,指定默認名

Response.AddHeader("content-type","application/x-msdownload");Response.AddHeader("Content-Disposition","attachment;filename=要下載的文件名.rar");

@刷新頁面

Response.AddHeader "REFRESH", "60;URL=newpath/newpage.asp"

這等同于客戶機端<META>元素:

<META HTTP-EQUIV="REFRESH", "60;URL=newpath/newpage.asp"

@頁面轉向

Response.Status = "302 Object Moved"Response.Addheader "Location", "newpath/newpage.asp"

這等同于使用Response.Redirect方法:

Response.Redirect "newpath/newpage.asp"

@強制瀏覽器顯示一個用戶名/口令對話框

Response.Status= "401 Unauthorized"Response.Addheader "WWW-Authenticate", "BASIC"

強制瀏覽器顯示一個用戶名/口令對話框,然后使用BASIC驗證把它們發送回服務器(將在本書后續部分看到驗證方法)。
@如何讓網頁不緩沖

Response.Expires = 0Response.ExpiresAbsolute = Now() - 1Response.Addheader "pragma","no-cache"Response.Addheader "cache-control","private"Response.CacheControl = "no-cache

希望本文所述的Asp.net中Response.Charset與Response.ContentEncoding的區別及相關用法對大家Asp.net程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莆田市| 南康市| 河间市| 满城县| 谷城县| 涞源县| 陕西省| 玉山县| 霍城县| 临朐县| 昭平县| 仪陇县| 松江区| 弋阳县| 郓城县| 斗六市| 东辽县| 德安县| 开平市| 独山县| 曲麻莱县| 铜鼓县| 新密市| 南汇区| 广西| 勐海县| 娄烦县| 澜沧| 安新县| 甘谷县| 梓潼县| 武陟县| 祁门县| 木里| 乐业县| 杭锦后旗| 黄平县| 南和县| 邹城市| 锦屏县| 东丽区|