Javascript 使用PHP导出到带有中文字符的CSV

Javascript 使用PHP导出到带有中文字符的CSV,javascript,php,mysql,sql,csv,Javascript,Php,Mysql,Sql,Csv,我试过: $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"]

我试过:

$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数据库中,我有一些类似于:“ä»ääšçç’ž”
但是,当我回显它们时,就可以了。

您需要将字符从“%u6CD5%u56FD”转换为“\u6CD5\u56FD”,并使用JSON.parse()解析您的结果:

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

根据docs的说法,第二个参数似乎是输出字符集,您是否尝试过将其更改为
utf-8
?@PatrickBarr是的,如果我将utf-8作为第二个参数,也是一样的。我会尝试一下,稍后回来告诉您是否有效。非常感谢。