CSV 乱码问题

问题: cshtml中的table 导出为csv格式,用excel打开时,出现中文乱码

解决:这是由于 少了一个BOM头 “\ufeff“

var BOM = "\uFEFF";          
var blob = new Blob([BOM + data],{ type: 'text/csv;charset:utf-8' });          
saveAs(blob, "data export.csv");

问题:csv一般运用英文逗号“,”分列 “\n”分行, 但当用户输入中包含",""<"">"等特殊字符时,程序无法识别

解决:

var str = "col1,col2,col3\nvalue1,value2,value3";
str =encodeURIComponent(str);

或者将替换字符串重新赋值给自己

用户输入文本包含的逗号有两种情况,一种就是标点符号,还有一种是数学中的",",如(0,+0.04)

for (var i = 0; i < rows.length; i++) {    //--循环所有的行
    var cells = rows[i].cells;
    for (var j = 0; j &lt; cells.length; j++\) {   //--循环所有的列
         var cellstext = cells[j].innerHTML;
         for (var k = 0; k < cellstext.length; k++) {   //遍历该字符串每个字符,看是否有",",否则只会替换第一个","
             cellstext = cellstext.replace(",", ",");  //避免干扰分列,将英文逗号替换成中文逗号
             cellstext = cellstext.replace("&lt;", "<");
             cellstext = cellstext.replace("&gt;", ">");
          }
        data += cellstext + ",";   //用","分列
     }
data += "\n";   //用"\n"分行
}

results matching ""

    No results matching ""