Asp.net中Response.Charset与Response.ContentEncoding区别示例
本文旨在阐述Asp.NET中Response.Charset与Response.ContentEncoding的区别,通过示例分析帮助深入理解Asp.NET程序设计。
我们来看一下Response.Charset和Response.ContentEncoding的基本含义。在ASP.NET中,Response对象用于向客户端发送数据。其中,Response.Charset属性用于获取或设置输出流的HTTP字符集,而Response.ContentEncoding属性则获取或设置输出内容所采用的编码方式。
接下来,通过几个示例来进一步理解这两个属性的区别和用途。
在示例1中,我们将Response.ContentEncoding设置为"gb2312",将Response.Charset设置为"utf-8",然后输出"狼蚁SEO"。在浏览器中打开网页时,可能会发现显示乱码,但在查看源代码时,内容并非乱码。这说明ContentEncoding主要负责字节流到文本的转换,而Charset则负责在浏览器中的显示。
在示例2中,只设置了Response.ContentEncoding为"gb2312",通过Fiddler查看HTTP头信息,发现其中包含了"text/html; charset=gb2312"。这表明在没有明确指定Charset时,会使用ContentEncoding的Charset作为HTTP头的charset。
示例3中,虽然Response.Charset被设置为一个错误的值"123-8",但HTTP头中仍然显示为正确的ContentEncoding的Charset,并且网页显示正常。这进一步说明,如果charset错误,仍然会以ContentEncoding的Charset作为实际使用的charset。
示例4中,当HTTP头中没有charset时,网页仍然能够正常显示,这是因为仍然以ContentEncoding的Charset作为实际使用的charset。
还需要注意Response.ContentType属性,它用于获取或设置输出流中HTTP的MIME类型。不同的MIME类型会触发浏览器使用不同的渲染引擎。例如,在IE6及以上版本中,如果MIME类型为"text/xml",浏览器会自动将XML内容以树状结构显示。
二、使用Response流创建Word文件示例
在ASP程序中,当你点击某个按钮时,下面的代码将帮助你在服务器端生成一个Word文档并将其发送到客户端。
```csharp
protected void btnGenerateWord_Click(object sender, EventArgs e)
{
// 清空无关信息并设置缓冲和字符集
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312"; // 设置字符集以支持中文内容
// 设置HTTP头信息以告诉浏览器即将接收的是一个Word文档
Response.AppendHeader("Content-Disposition", "attachment;filename=Report.doc");
Response.ContentType = "application/ms-word"; // 设置MIME类型标识Word文档格式
// 将需要写入Word文档的内容写入响应流中
Response.Write(TextBox1.Text);
// 结束响应输出,完成Word文档的生成和发送过程
Response.End();
}
```
编程语言
- Asp.net中Response.Charset与Response.ContentEncoding区别示例
- 关于js和php对url编码的处理方法
- 微信小程序实现漂亮的弹窗效果
- WordPress自定义时间显示格式
- 前端ajax的各种与后端交互的姿势
- js数据类型检测总结
- Vue中的v-for循环key属性注意事项小结
- PHP怎样用正则抓取页面中的网址
- PHP图片自动裁切应付不同尺寸的显示
- 微信小程序sessionid不一致问题解决
- 基于js 本地存储(详解)
- JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种
- JS+CSS实现另类带提示效果的竖向导航菜单
- 基于es6三点运算符的使用方法(实例讲解)
- C#使用PHP服务端的Web Service通信实例
- thinkPHP简单实现多个子查询语句的方法