我有这个字符串%22%00%41%00%22%00%09%00%22%00%42%00%22%00
,它是"A"\t"B"
的UTF-16LE等价物。 (\t
是Tab char。)
我正在尝试构建一个Blob,然后为它构建一个URL,但输出不会被解码为正确的实体。
var blob=new Blob([stringHere],{type:'text/csv;charset=UTF-16LE;'});
var blobUrl=URL.createObjectURL(blob);
有没有告诉Blob字符串编码,以便在Excel中打开时能够正常显示(在这种特殊情况下)?
我需要UTF-16LE,否则使用UTF-8会导致Excel无法正确解析.csv文件。
感谢。
答案 0 :(得分:2)
看起来你需要在文件中使用utf-16文件,你可以用js中的字符串来做,所以你必须使用一个字节数组。见下面的例子
var stringHere = '%ff%fe%22%00%41%00%22%00%09%00%22%00%42%00%22%00';
var byteArray = [];
stringHere.replace(/([0-9a-f]{2})/gi, function(d){
byteArray.push(parseInt(d, 16));
});
var blob=new Blob([new Uint8Array(byteArray)],{type:'text/csv;charset=UTF-16LE;'});
var blobUrl=URL.createObjectURL(blob);