Magento大部分数据可以导出CSV的格式,但Magento导出的CSV默认编码为UTF-8并且没有BOM头,Excel打开带中文的UTF-8编码的CSV时,因为没有BOM头,默认显示为GBK编码所以中文会显示成乱码。
解决这个问题的方法有两种:
方法一:
在导出的过程中将编码转成GBK再输出,对字符串转编码可以使用ICONV函数,MagenTo里可以参考添加这个方法:
文件:app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
protected function d_encodeUTF8($array){ foreach($array as $key=>$value){ $array[$key] = !is_array($value)?iconv("UTF-8","GBK",$value):$this->d_encodeUTF8($array[$key]); } return $array; }
然后在_getExportHeaders()里的return $row前添加:
$row = $this->d_encodeUTF8($row);
方法二:
为输出的UTF8编码CSV文件添加BOM头
将文件:app/code/core/Mage/Adminhtml/Block/Widget/Grid.php里的
protected function _getExportHeaders(){ }
方法 换成
protected function _getExportHeaders() { $row = array(); foreach ($this->_columns as $column) { if (!$column->getIsSystem()) { $row[] = "\xEF\xBB\xBF".$column->getExportHeader(); } } return $row; }
即可
声明: 本文由( admin )原创编译,转载请保留链接: MagenTo导出CSV中文乱码问题解决
------====== 本站公告 ======------
联系信息:
电话:19970108113(微信同号) QQ:3142401606
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。
感谢分享,解决了我这个问题 😛
2013-02-05 11:24 am