ASP.NET中将导出的数据以UTF-8编码方式进行存储

时间:2022-10-09 23:02:43
 
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.UTF8;
Response.AppendHeader($"Content-Disposition", "attachment;filename=coupons.xls");
//Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode("coupons.xls", System.Text.Encoding.UTF8) + "\"");
Response.ContentType = "application/ms-excel"; ... ////以下代码使文件内容以UTF-8编码存储,如果注掉则以UTF-8无BOM格式编码
byte[] buffer = Encoding.UTF8.GetBytes(result.ToString());
byte[] outBuffer = new byte[buffer.Length + ];
outBuffer[] = (byte)0xEF;
outBuffer[] = (byte)0xBB;
outBuffer[] = (byte)0xBF;
Array.Copy(buffer, , outBuffer, , buffer.Length);
Response.Write(Encoding.UTF8.GetString(outBuffer)); //Response.Write(result); Response.Flush();
Response.End();

BOM是UTF编码方案里用于标识编码的标准标记,在UTF-16里是FF FE,UTF-8里是EF BB BF。这个标记是可选的,因为UTF-8没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当做正常字符处理。
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记,类Unix系统中就没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。也就是说一个UTF-8文件可能有BOM,也可能没有BOM,那么怎么区分呢?
三种方法:
1、用UltraEdit-32打开文件,切换到十六进制编辑模式,查看文件头部是否有EF BB BF;
2、用Dreamweaver打开,查看页面属性,看“包括Unicode签名BOM”前面是否有个勾;
3、用Windows的记事本打开,选择 “另存为”,看文件的默认编码是UTF-8还是ANSI,如果是ANSI则不带BOM。
所谓的unicode保存的文件实际上是utf-16,只不过恰好跟unicode的码相同而已,但在概念上unicode与 utf是两回事,unicode是内存编码表示方案,而utf是如何保存和传输unicode的方案。utf-16还分高位在前 (LE)和高位在后(BE)两种。官方的utf编码还有utf-32,也分LE和BE。非unicode官方的utf编码还有utf-7,主要用于邮件传输。utf-8的单字节部分是和iso-8859-1兼容的,这主要是为了解决一些旧的系统和库函数不能正确处理utf-16的问题,而且对英语字符来说,也节省保存的文件空间(以非英语字符浪费空间为代价)。在iso-8859-1的时候,utf8和iso-8859-1都是用一个字节表示的,当表示其它字符的时候,utf-8会使用两个或三个字节。

参考:http://www.cnblogs.com/landywzx/archive/2012/12/28/2836901.html

ASP.NET中将导出的数据以UTF-8编码方式进行存储的更多相关文章

  1. 在ASP.NET中将GridView数据导出到Word、Excel

    在ASP.NET中将GridView数据导出到Word.Excel asp.net,导出gridview数据到Word,Excel,PDF   #region Export to Word, Exce ...

  2. PHP中导出Excel,将数据以Excel形式导出

    现在,很多地方都需要导出数据,这里说一种简单的方法将数据以Excel的形式导出,方法如下: <?php date_default_timezone_set('PRC');//设置时区 /*设置h ...

  3. asp&period;net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  4. asp&period;net中导出Execl的方法

    一.asp.net中导出Execl的方法: 在 asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址 输出在浏览器上:一种是将文件直接将文件输出流写给 ...

  5. python实现的json数据以HTTP GET&comma;POST&comma;PUT&comma;DELETE方式页面请求

    一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

  6. ASP&period;net中导出Excel的简单方法介绍

    下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...

  7. 关于asp&period;net C&num; 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    -----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...

  8. ASP&period;NET MVC导出excel

    ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...

  9. 将数据以json字符串格式传到前台请求页面

    1.前台ajax方法(这个是在FlowDocAction的add.jsp页面) //序列号 var preFileNo = factoryCode+deptCode+"-"+mod ...

随机推荐

  1. CSS 百分比 margin &amp&semi; padding

    前段时间我同事对于margin和padding应用百分比值似乎有些误解,觉得可能是个普遍问题,所以觉得有必要拿出来单独写一下. margin和padding都可以使用百分比值的,但有一点可能和通常的想 ...

  2. 01、AngularJs简介

    AngularJs致力于减轻程序员在开发Ajax应用过程的痛苦.做前端的童鞋都知道,当在开发Ajax应用时,我们在与后台交互的同时,还在不断的手动操作Dom,诸如自己组装后台数据,渲染Html标签生成 ...

  3. NSNotificationCenter应用总结

    通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad.  Apple 还为我们提供了另一种通知响应方式,那就是 NSNot ...

  4. 锁之&OpenCurlyDoubleQuote;重量级锁”Synchronized

    一.Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法.Synchronized的作用主要有三个:(1)确保线程互斥的访问同步 ...

  5. spring中涉及事务(bean中ref与local)

    <bean id="接口" parent="父id"> <property name="target"> <r ...

  6. Android开发重修

    Android程序开发的重新学习 #####Mars课程学习笔记20140926 1.Service主要用于完成耗时较长的操作,没有图形化界面. 2.Content Provider数据的提供者,是A ...

  7. 关于identifier was truncated to &&num;39&semi;255&&num;39&semi; characters

    学习c++过程中,遇到在VC中使用set时DEBUG模式出现的警告 identifier was truncated to '255' characters in the debug informat ...

  8. 洛谷P1144 最短路计数

    题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. 接下来M行 ...

  9. 微信token验证失败的几种情况

    最近在研究用PHP做微信开发的时候,“修改配置时”,总是遇到token验证失败的提示.历经一番查找,种种输出日志和echo,发现,如果不echo调试信息,也不写日志,就不需要ob_clean(),如果 ...

  10. java 字符串&lpar;String&rpar;常用技巧及自建方法模块汇总

    1.String类常用方法汇总 (1)删除字符串的头尾空白符 public String trim() (2)从指定位置截取字符串 public String substring(int beginI ...