云顶娱乐手机官网-云顶娱乐网址

热门关键词: 云顶娱乐手机官网,云顶娱乐网址

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

2019-09-26 作者:编辑程序   |   浏览(163)
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 + 3];            outBuffer[0] = (byte)0xEF;            outBuffer[1] = (byte)0xBB;            outBuffer[2] = (byte)0xBF;            Array.Copy(buffer, 0, outBuffer, 3, buffer.Length);            Response.Write(Encoding.UTF8.GetString(outBuffer));             //Response.Write;              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”前边是否有个勾;
ASP.NET中将导出的数据以UTF-8编码方式进行存储。3、用Windows的记事本张开,选择“另存为”,看文件的默许编码是UTF-8依然ANSI,假若是ANSI则不带BOM。
所谓的unicode保存的文书实际上是utf-16,只可是恰好跟unicode的码一样罢了,但在概念上unicode与 utf是四回事,unicode是内部存款和储蓄器编码表示方案,而utf是怎么着保存和传导unicode的方案。utf-16还分高位在前 和高位在后二种。官方的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会动用多个或八个字节。

参考:

本文由云顶娱乐手机官网发布于编辑程序,转载请注明出处:ASP.NET中将导出的数据以UTF-8编码方式进行存储

关键词: