您好,欢迎访问一九零五行业门户网

PHP生成UTF-8编码的CSV文件打开乱码的解决方法

php生成utc-8编码的csv文件,使用excel打开查看乱码,分享下解决方法,供大家参考。openoffice打开正常而excel打开不正常, 后来只能把编码转换后,才得以解决。
后来查找原因, 是由于输出的csv文件中没有bom.
什么是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来标记文本文件的编码方式的。
那么如何在php中输出bom呢?
在所有内容输出之前:print(chr(0xef).chr(0xbb).chr(0xbf));
其它类似信息

推荐信息