php导出csv文件乱码问题解决方法

说 这个问题之前首先来说一下什么是CSV文件?Comma Separator Value(逗号分隔值)是也。常常用来数据转换的中间文件存在,比如:从Mysql中导出数据到CSV,导入CSV到SqlServer中。在 Linux下用PHP脚本从Mysql数据库中将表的数据按照条件导出成csv,使用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),具体的对应关系见下表。

Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8

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

实现代码如果

<?php
$str = "哈,哈,哈,哈";
$fp = fopen("a.csv","a");
//在写入数据之前先把bom头写到文件里
fwrite($fp,"\xEF\xBB\xBF");
//再写入数据 php程序员站
fwrite($fp,$str);
phperz.com
fclose($fp);
phperz.com
?>

注:在写csv文件时确保php源码是utf-8,并且无BOM,并且没有输出任何内容。

BOM实际上挺烦人,如果你的网页(*.html)有BOM,在IE6.x下面打开会发现一神奇的空行,Firefox下却没有

来源:http://www.i-felix.cn/blog/phpdao-chu-csvwen-jian-luan-ma-wen-ti-jie-jue-fang-fa-gai-si-de-wei-ruan

php导出csv文件乱码问题解决方法相关推荐

  1. Excel 打开 CSV 文件乱码解决方法

    Excel 打开 CSV 文件乱码解决方法 - 膨胀的面包 https://blog.wangtwothree.com/code/157.html 经常接触数据的朋友,可能时不时会遇到这种情况,一份 ...

  2. 解决导出CSV文件乱码的问题

    这几天处理bug,在解决这个导出csv格式文件乱码的问题, 记录一下: 1,处理前代码 public static void exportList(String[] headers, String[] ...

  3. bufferedreader读取中文乱码_python之pandas模块关于csv文件乱码问题解决

    介绍 相信部分小伙伴们在处理windows系统生成的csv文件时会遇到中文显示乱码的问题,尤其是使用Excel打开这类文件时这类问题尤为突出. 解决 如图,我们通过Excel工具打开该csv文件时,中 ...

  4. CSV文件乱码问题解决

    在日常工作中,时常遇到这样的问题: 一个csv文件用wps/excel打开显示正常,但是用编译器(sublime.notepad++)等打开就乱码,或者相反:wps/excel打开显示乱码,但是用编译 ...

  5. 中文保存CSV文件乱码解决方法

    使用代码保存CSV文件,使用excel表打开  都会有一个小问题,就是乱码的问题. 如:瀵掑啲瀹濈彔鎶勮鎴愬姛 鐖嗗彂浼ゅ 保存时应该携带如下即可 encoding='gb18030'

  6. java导出数据为乱码_传参导出Excel表乱码问题解决方法

    业务场景 先描述一下业务场景,要实现的功能是通过搜索框填写参数,然后点击按钮搜索数据,将搜索框的查询参数获取,附加在链接后面,调导Excel表接口,然后实现导出Excel功能.其实做导Excel表功能 ...

  7. java导出csv文件乱码_记一次java生成csv文件乱码的解决过程 (GB2312编码)

    系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多 ...

  8. linux文件乱码问题解决方法汇总

    一.查看文件编码方式 通过vi命令打开文件"vi file.txt",然后在执行":set fileencoding"可查看文件编码方式 二.修改文件编码方式 ...

  9. mysql导出数据到表格讲解大全(导出数据带表头,导出数据中文乱码问题解决)

    方法1 使用sqlyang工具 1.本地准备好一个文件 2.选择数据 3.点击图中所示按钮 ,选择复制所有行到剪贴板 4.一般都选择确定,无须修改 5 打开之前的文件,粘贴保存 方法2 使用mysql ...

最新文章

  1. postgresql存图片字段类型_PostgreSQL 入门 | Linux 中国
  2. 《postfix邮件服务下mailq、postmap、postqueue 、 postsuper等用法》
  3. [gic]-linux和optee的中断处理流程举例(gicv3举例)
  4. boost::sort相关的测试程序
  5. 【Flask】sqlalchemy 排序
  6. loadrunner之java协议脚本编写
  7. php发送邮件时间间隔,在使用phpmailer群发邮件时如何设置发送的时间间隔?
  8. 20200920:leetcode35周双周赛题解(上)
  9. Android获取CPU信息(CPU名字和主频)
  10. Axure9桌面无法显示图标
  11. excel模板 基金账本_有哪些好用的Excel个人账单模板?
  12. AHP计算权重.mat
  13. 事业单位资产管理系统破解资产管理难题,实现账、卡、物、地、人相符
  14. 2016年蓝桥杯B组C/C++省赛试题-漏网之渔
  15. 微信公众号开发之网页授权
  16. STM32 F107VC移植freeRTOS
  17. Hadoop的序列化和反序列化
  18. 电脑新加内存条后 游戏崩溃 浏览器卡死 电脑蓝屏
  19. Oracle横竖转换通用函数
  20. 学服装设计计算机证有用吗,服装设计怎么考证_服装设计有什么证书

热门文章

  1. 信息学奥赛一本通C++语言——1008:计算(a+b)/c的值
  2. 双精度数举例_c语言中,常量,变量,浮点,单精度,双精度是什么意思?举例...
  3. vmvare连接linux
  4. nginx 重启和配置include的位置
  5. bv值是什么意思_BV出爆款了,今年买包怎能不盘一只“云朵”?
  6. layui横线:带标题的横线(含代码、案例)
  7. 地摊叫卖、超市播音工具-简洁的文字转语音播音软件
  8. 基于uniapp开发的适用于微信小程序,头条小程序
  9. 清爽娱乐网系统源码 v5.69
  10. 全网首发Oreo易支付开源+教程