var json = pseudojson.replace(/(:\s*")(.+?)("\s*[\]},])/g, function(a,b,c,d){
return b + c.replace(/"/g,'\\"') + d
});
Только вам не поможет. Ваша "колхозная" функция ещё и скобочки забывает.
kostyanet, нормально utf8 он понимает, весь секрет в обязательном наличии BOM.)
<script>document.write(
'<a href="data:application/vnd.ms-excel;utf8,', encodeURIComponent('1; Фэйл\n2; =('), '" download="noBOM.csv">noBOM</a>', '<br>',
'<a href="data:application/vnd.ms-excel;utf8,', encodeURIComponent('\ufeff1; Вин\n2; =)'), '" download="BOM.csv">BOM</a>'
)</script>