【问题标题】:Export to CSV with chineses caracters with PHP用 PHP 导出到带有中文字符的 CSV
【发布时间】:2017-07-07 13:44:04
【问题描述】:

我试过了:

$name = iconv("utf-8", "GB18030", $value["name"]);
  • 以文本打开并更改编码
  • 在更改编码时导入 excel

我正在使用 PHP 和 JS:

我的 PHP 代码:

echo '"name";"sex";"language";"city";"province";"country";"account"';
foreach ($res_account as $value) {
echo "\n".$name.";".$value["sex"].";".$value["language"].";".$value["city"].";".$value["province"].";".$value["country"].";".$value["account"];
}

responseText是我在php中回显的数据:

var myCsv = request.responseText;
window.open('data:text/csv;charset=GB18030,' + escape(myCsv));

还尝试使用 charset="utf-8"。

我总是在 csv 中得到类似的信息:“%u6CD5%u56FD”。 在 MySQL 基础中,我有类似的东西:“代亚ç'ž” 但是当我回应他们时,没关系。

【问题讨论】:

  • 根据iconv docs,看起来第二个参数是输出字符集,您是否尝试将其更改为utf-8
  • @PatrickBarr 是的,如果我把 utf-8 作为第二个参数也是一样的。

标签: javascript php mysql sql csv


【解决方案1】:

您需要将字符从 "%u6CD5%u56FD" 转换为 "\u6CD5\u56FD" 和 JSON.parse() 你的结果:

myCSV = myCSV.replace(/%/g, "\\");
myCSV = JSON.parse('"'+ myCSV + '"');

【讨论】:

  • 会尝试,稍后回来告诉您是否有效。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 2011-10-21
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多