今天有一同学问我为什么PHP生成CSV文件用Excel打开会出现乱码呢,下面小编来给大家找了一些常见的办法,希望此方法对各位朋友会有所帮助。
百度查证后得知
PHP生成UTF-8编码的CSV文件用Excel打开中文显示乱码,是由于输出的CSV文件中没有BOM。
我们只要简单处理一下即可
那么如何在PHP中输出BOM呢?
在所有内容输出之前
代码如下 | 复制代码 |
print(chr(0xEF).chr(0xBB).chr(0xBF)); |
例.php生成csv时我们可以这样
代码如下 | 复制代码 |
$now = gmdate("D, d M Y H:i:s"); |
还有一种办法就是使用Office
打开Microsoft Office 2010 Excel,数据-自文本,如图:
导入此csv格式文件,同样要求选择编码,如图:
这里选择UTF-8,打开后,发现乱码消除,如图:
补:UTF-8是在互联网上使用最广的一种unicode编码的实现方式。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度