导出csv格式时其他都很正常,只有中文容易产生乱码,后来找到了添加BOM头的解决方案:
$('#list_csv_export').click(function () {
var url = $(this).attr('data-url');
var layer = layui.layer;
layer.msg('正在下载订单明细,请耐心等待', {icon: 6, time:1500});
layer.load(2);
$.get(url, function (data) {
if (undefined == data.retCode) {
let a = document.createElement('a');
content="ufeff"+data;
let url = window.URL.createObjectURL(new Blob([content],{type:'text/plain,charset=utf-8'}));
let filename = '订单明细.csv';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
layer.msg('导出成功', {icon: 6, time:1500});
layer.closeAll('loading');
} else {
layer.msg('导出失败,请刷新页面后重试', {icon: 5, time:1500});
}
});
});
BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。 在字符串头部加上"ufeff"表示它是utf-8格式编码的,在用编辑器打开时就不会产生乱码了