Heim  >  Artikel  >  Backend-Entwicklung  >  解决php导出csv文件乱码的问题(图文)

解决php导出csv文件乱码的问题(图文)

WBOY
WBOYOriginal
2016-07-25 09:04:24995Durchsuche
CSV文件 Comma Separator Value(逗号分隔值)。常用来数据转换的中间文件存在,比如:从Mysql中导出数据到CSV,导入CSV到SqlServer中。

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),具体的对应关系见下表。 unicode 类Unix系统中并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。

代码: phpcode

注: 在写csv文件时确保php源码是utf-8,并且无BOM,并且没有输出任何内容。 网页(*.html)有BOM,在IE6.x下打开会出现一神奇的空行,Firefox中没有这种怪现象。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn