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

PHP生成CSV文件用Excel打开乱码问题_PHP教程

今天有一同学问我为什么php生成csv文件用excel打开会出现乱码呢,下面小编来给大家找了一些常见的办法,希望此方法对各位朋友会有所帮助。
百度查证后得知
php生成utf-8编码的csv文件用excel打开中文显示乱码,是由于输出的csv文件中没有bom。
我们只要简单处理一下即可
那么如何在php中输出bom呢?
在所有内容输出之前
 代码如下 复制代码
print(chr(0xef).chr(0xbb).chr(0xbf));
例.php生成csv时我们可以这样
 代码如下 复制代码
array('title'=>'test test test1'),
'1'=>array('title'=>'test test test2'),
'2'=>array('title'=>'test test test3')
)
print(chr(0xef).chr(0xbb).chr(0xbf));//设置utf-8 + bom ,处理汉字显示的乱码
echo array2csv($items_data);
function array2csv(array &$array)
{
   if (count($array) == 0) {
     return null;
   }
   ob_start();
   $df = fopen(php://output, 'w');
   fputcsv($df, array_keys(reset($array)));
   foreach ($array as $row) {
      fputcsv($df, $row);
   }
   fclose($df);
   return ob_get_clean();
}
?>
还有一种办法就是使用office
打开microsoft office 2010 excel,数据-自文本,如图:
导入此csv格式文件,同样要求选择编码,如图:
这里选择utf-8,打开后,发现乱码消除,如图:
补:utf-8是在互联网上使用最广的一种unicode编码的实现方式。utf-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度
http://www.bkjia.com/phpjc/633200.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/633200.htmltecharticle今天有一同学问我为什么php生成csv文件用excel打开会出现乱码呢,下面小编来给大家找了一些常见的办法,希望此方法对各位朋友会有所帮助...
其它类似信息

推荐信息