首页 >后端开发 >php教程 >csv导出姓名生僻字变问号

csv导出姓名生僻字变问号

WBOY
WBOY原创
2016-06-23 13:37:262588浏览

csv导出的数据
用户姓名这一列,有几个用户的名字中带有生僻字的都变成了“?”,大部分用户的中文名字都ok,
导之前已经iconv("UTF-8","GBK",$username);但是对生僻字无效果。
生僻字如“?”,“?”,“?”,“?”


回复讨论(解决方案)

“?”,“?”,“?”,“?” 既然已收入 GBK 中,就不算生僻字了。
辞海中有十多万字,GBK 才收录了两万多点

应该是你在某处指定了字符集为 GB2312 了吧

估?是使用了其他字符集?致。

csv导出的数据
用户姓名这一列,有几个用户的名字中带有生僻字的都变成了“?”,大部分用户的中文名字都ok,
导之前已经iconv("UTF-8","GBK",$d->realname);但是对生僻字无效果。
生僻字如“?”,“?”,“?”,“?”

foreach($datas as $d)
{
$d->realname=iconv("UTF-8","GBK",$d->realname);
}
$contents = View::make('user.info_csv')->with(compact('datas'));
$response = Response::make($contents, 200);
$response->header('Content-Type', 'text/csv;charset=gb2312');
$response->header('Content-Disposition', 'attachment; filename="用户信息.csv"');
return $response;

找到问题了,mac机导出遇到生僻字就变成问号了,windows下导出正常。

不知道你的那些类是怎么写的,简单的测试一下

header("Content-type: text/csv;charset=gb2312");header("Content-Disposition: attachment; filename=用户信息.csv");echo '"?","?","?","?"';

并没有问题的

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn