当前位置:  编程技术>php

php导出csv文件打开乱码的解决方法

    来源: 互联网  发布时间:2014-10-10

    本文导语:  在php编程中,经常会导出数据为excel或csv文件,不过为了操作方便,大多时候我们会用php导出csv文件。 CSV,Comma Separator Value,常常用来数据转换的中间文件存在。 使用utf-8编码导出CSV文件,打开后中文成了乱码(Windows下CSV文件...

在php编程中,经常会导出数据为excel或csv文件,不过为了操作方便,大多时候我们会用php导出csv文件。

CSV,Comma Separator Value,常常用来数据转换的中间文件存在。
使用utf-8编码导出CSV文件,打开后中文成了乱码(Windows下CSV文件默认与Microsoft Excel关联),用Notepad++或者Word打开正常。

原因分析:
BOM惹的祸,微软惹的祸。

什么是BOM?Byte Order Mark。

为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头。这作为一个"特征符"或"字节顺序标记(byte-order mark,BOM)"来识别文件中使用的编码和字节顺序(big-endian或little-endian),具体的对应关系见下表。
 

BytesEncoding Form00 00 FE FFUTF-32
big-endianFF FE 00 00UTF-32
little-endianFE FFutf-8
big-endianFF FEutf-8
little-endianEF BB BFUTF-8

Unix系统中并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。

php源码文件是用NotePad++生成的,在Centos下执行,格式为:以UTF-8无BOM格式编码,因此要想导出Microsoft Excel可以正常显示的UTF-8的CSV文件,需要显式的输出BOM(EF BB BF,上表的最后一种类型),然后再输出Mysql中的有效数据。

实现如下的php函数:
 

代码示例:

总结:
1,output_csv函数使用前,确保php源码是utf-8,并且无BOM,并且没有输出任何内容。
2,BOM实际上挺烦人,如果网页(*.html)有BOM,在IE6.x下打开会发现空行,Firefox下没有。


    
 
 

您可能感兴趣的文章:

  • php网页标题中文乱码如何解决
  • php pdo编码乱码问题的解决方法
  • php网页标题中文乱码的有效解决方法
  • 解决php json_encode中文转码、乱码问题
  • 解决php csv文件导入mysql中文乱码
  • Python和php通信乱码问题解决方法
  • php导入csv文件中文乱码的解决方法
  • php中文乱码怎么办如何让浏览器自动识别utf-8
  • PHP解决URL中文GBK乱码问题的两种方法
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • php读取mysql中文乱码解决方法
  • php导出csv文件乱码问题的解决实例
  • php截取中文字符串不乱码的方法
  • php截取字符串(无乱码 utf8)
  • php读取mysql中文乱码解决方法 iis7站长之家
  • php截取中文字符串(无乱码)方法
  • php文件下载(防止中文文件名乱码)的示例代码
  • php连接mysql二种方法 mysql乱码问题
  • PHP连接MySQL的2种方法小结以及防止乱码
  • PHP生成UTF-8编码的CSV文件打开乱码的解决方法
  • PHP导出excel php使用phpexcel导出excel文件
  • php导出csv时身份证号禁止科学计数
  • PHP导出CSV表格文件的方法
  • php导出(生成)CSV文件的小例子
  • php导出word文档与excel表格文件
  • php导出csv文件函数(增强版)
  • PHP导出excel时数字变为科学计数的解决方法
  • php导出word文档与excel电子表格的简单示例代码
  • PHP导入与导出Excel文件的方法
  • php读取csv、写入csv与导出csv文件
  • php导出excel单元格自动换行怎么实现?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php是什么文件 php文件怎么打开
  • 如何远程打开php文件?
  • php读取(打开)csv文件的小例子
  • php判断页面是否是微信打开的示例(微信打开网页)
  • php下载excel无法打开的解决方法
  • 请问我在linux下面把apache+mysql+php配好后,在本地可以打开网页,可是在局域网里面的win却不能访问!
  • php怎么判断页面是否微信打开
  • 解决php下载excel无法打开的问题
  • php强制文件下载而非在浏览器打开的自定义函数分享
  • php curl批量打开网址(curl_multi类)的实现代码
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS
  • php通过socket_bind()设置IP地址代码示例
  • php服务器探针显示php服务器信息
  • php安装完成后如何添加mysql扩展
  • PHP缓存加速器 Alternative PHP Cache (APC)
  • PHP的substr() 函数用法
  • PHP源文件加密工具 PHP Screw
  • PHP介绍及学习网站推荐
  • PHP自动化测试 PHP-QAT
  • php中操作memcache的类及成员列表及php下如何连接memched服务器
  • PHP 的 HTTP 客户端库 PHP Buzz
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3