Asp.net中Response.Charset 与Response.ContentEncoding区别
来源:互联网 发布:上海柳梦洁开的淘宝店 编辑:程序博客网 时间:2024/06/06 19:59
Response.Charset
ASP.NET 中示例:
<%@ Page CodePage=936 %>
CodePage 告诉 IIS 按什么编码来读取 QueryString,按什么编码转换数据库中的内容……
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使用
- Asp.net中Response.Charset 与Response.ContentEncoding区别
- Asp.net中Response.Charset 与Response.ContentEncoding区别
- Asp.net中Response.Charset 与Response.ContentEncoding区别
- asp.net中Response.write与Response.Redirect同时使用
- ASP.NET中httpResponse与Response
- meta charset 与 response header 的charset
- 在NETBOX中使用Asp AJAX Response.CharSet解决方法
- Response.Charset="utf-8"与Response.Charset="gb2312"
- asp.net中Server.Transfer和Response.Redirect的区别
- asp.net中 Server.Execute() Server.transfer()与Response.Redirect()的区别
- asp.net 中 Request.Cookies 与 Response.Cookies解析
- 【.NET 】ASP.NET中Response.End()异常
- 【.NET 】ASP.NET中Response.End()异常
- ASP.NET--Request和Response的区别
- ASP.NET中Response的基本用法
- asp.net中Response.Write用法小结
- ASP.NET中request和response对象
- Response.ContentType (ASP.NET)
- MySQL---SUBSTRING,LEFT,RIGHT,REPLACE,CONCACT
- 使用ListView的addFooterView或者addHeaderView报错或者不知名的异常:at android.widget.ListView.clearRecycledState(List
- pragma pack() 详解
- Flex仿Extjs局部遮罩(可带进度条)
- 张柏芝自曝当年拍艳照原因 对谢霆锋死心(图)
- Asp.net中Response.Charset 与Response.ContentEncoding区别
- 进程间通信与线程间通信
- Java调用命令行
- OpenSUSE13.1 视频播放器 解码问题
- 尊重原创,请保证您的文章为原创作品
- Python字符串格式化
- 尊重原创,请保证您的文章为原创作品
- hibernate4 二级缓存demo实例
- ios 抓图实现