>  기사  >  백엔드 개발  >  PHP로 내보낸 CSV 파일(그래픽 및 텍스트)에서 문자가 깨지는 문제를 해결합니다.

PHP로 내보낸 CSV 파일(그래픽 및 텍스트)에서 문자가 깨지는 문제를 해결합니다.

WBOY
WBOY원래의
2016-07-25 09:04:24997검색
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),具体的对应关系见下表。 PHP로 내보낸 CSV 파일(그래픽 및 텍스트)에서 문자가 깨지는 문제를 해결합니다. 类Unix系统中并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。

代码: PHP로 내보낸 CSV 파일(그래픽 및 텍스트)에서 문자가 깨지는 문제를 해결합니다.

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



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.