我一直在试图用Confluence从Confluence中删除一些表并制作CSV。当我在Excel上打开CSV时,很多数据都有特殊字符,有些字段看起来像这样:
 Rüdiger Fritsches
我想摆脱特殊角色。我一直在寻找的很多其他堆栈溢出答案表明这是一个字符编码问题,但是当我尝试使用以下代码清理文本时:
function getFixedString(string) {
try {
return decodeURIComponent(escape(string));
}
catch(e) {
return string;
}
}
它不起作用。有没有其他方法来解决这个问题?我已经成功地通过首先在记事本中打开来获得一个干净的文件,保存为txt,然后在Excel中重新打开,但这不是我可以提供给客户的解决方案。
虽然这不是我的程序运行方式,但您可以通过运行此程序并在Excel中打开csv来重现错误:
str = "@nbayly when done manually the outcome is Rüdiger Fritsches,The original website's charset is UTF-8.";
str = getFixedString(str);
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([str], {type: 'text/csv;charset=utf-8'}));
a.download = 'test.csv';
// Append anchor to body.
document.body.appendChild(a)
a.click();
// Remove anchor from body
document.body.removeChild(a)
function getFixedString(string) {
try {
return decodeURIComponent(escape(string));
}
catch(e) {
return string;
}
}
答案 0 :(得分:2)
如果您要删除所有非ascii字符。您可以执行以下操作:
function getFixedString(string){
return string.replace(/[^\x00-\x7F]/g, "");
}