PHP - 将CSV转换为CSV,例如中国文字

时间:2015-01-15 20:59:50

标签: php excel csv unicode

带有表单的

我们将数据传递给PHP脚本,该脚本为电子表格程序(例如excel)创建可下载的CSV。 如果没有特殊的字符传递,下面的scipt工作完美。但是传递像中文字母这样的特殊字符会以unicode结尾....

实施例: 我们通过表格字段发送“你好世界”(你好世界,unicode:你好世界)发送到这个php脚本export.php

<?php //opens a download dialog, download by excel
header("Content-type: text/csv; charset=UTF-8");
header("Content-Disposition: attachment; filename=\"eCalc Results.csv\"");
echo html_entity_decode(urldecode($_POST["exportData"])); 
// returns unicode &#20320;&#22909;&#19990;&#30028;
?>

我们怎样才能将CSV的这个unicodes转换为中文字母再次显示为你好世界...?

此示例:http://s4a.ch/exporttest/hello.php

我们搜索了整个stackoverflow,但没有成功转换...

感谢您的帮助 eCalc

2 个答案:

答案 0 :(得分:1)

......找到了解决方案:

首先使用javascript encode()编码发送方,但使用encodeURI()并使用

<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
标题中的

...这里是export.php(已插入物料清单!!)

<?php

header("Content-Encoding: UTF-8"); 
header("Content-Disposition: attachment; filename=\"eCalc Results.csv\"");
header("Content-type: text/csv; charset=UTF-8");
echo "\xEF\xBB\xBF"; // first send the UTF-8 BOM for Excel

echo html_entity_decode(urldecode($_POST["exportData"]));
?>

答案 1 :(得分:0)

您可以查看PHP文档的这一部分:http://php.net/manual/en/function.utf8-encode.php