zoukankan      html  css  js  c++  java
  • PHP 导出office打开乱码

    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);

    中文显示乱码的解决方法

    如果是文件名乱码,试试下面的:
    string httpHeader="attachment;filename="+HttpUtility.UrlEncode(strFileName+".xls");
    Response.AppendHeader("Content-Disposition", httpHeader);
    如果是文件内容乱码,试试下面的:
    Response.ContentEncoding=System.Text.Encoding.Default;

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

    最直接的方法,添加BOM

     //Windows下使用BOM来标记文本文件的编码方式
     fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF));

    补充:

    什么是BOM

    在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。
    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
    Windows就是使用BOM来标记文本文件的编码方式的。

  • 相关阅读:
    第七次
    第六次作业
    第五次作业
    第四次作业
    百度网盘生成二维码api
    【css3】--四种气泡
    纯CSS气泡框实现方法探究
    三种带箭头提示框总结实例
    纯CSS实现气泡框
    Windows 上 GitHub Desktop 的操作
  • 原文地址:https://www.cnblogs.com/liucaodan/p/7685666.html
Copyright © 2011-2022 走看看