将元数据添加到 CSV 文件中以指示 Excel 它应该如何打开

Add meta data into CSV file to instruct Excel how it should open

我正在导出 CSV 文件,其中 headers 列文本在 Angular 应用程序中从英语更改为法语。文本在英文版中显示正常,但在法文版中显示不正确,用 Excel 打开时带重音的字符显示不正确。使用 Notepad 或 Notepad++ 等文本编辑器打开时,它可以正常工作。

是否可以告诉 Excel 或任何支持 CSV 的编辑器(如 Libre Office)如何读取文件?就像在导出下载之前将一些嵌入的元数据添加到这个 CSV 文件中一样。我检查了 W3C 中的文档,只找到有关嵌入式元数据的资源,但没有太多关于类似语言、哪个字符作为分隔符等的信息……等等

示例来自 W3C

EXAMPLE 7: Tab-separated file containing embedded metadata

# publisher City of Palo Alto
# updated 12/31/2010
#name GID on_street species trim_cycle  inventory_date
#datatype string  string  string  string  date:M/D/YYYY
  GID On Street Species Trim Cycle  Inventory Date
  1 ADDISON AV  Celtis australis  Large Tree Routine Prune  10/18/2010
  2 EMERSON ST  Liquidambar styraciflua Large Tree Routine Prune  6/2/2010

尝试将 BOM(字节顺序标记)添加到 csv 的开头,以便 Excel 正确识别字符编码:

let bom = "\uFEFF";
let csv = "a;b;c;";
let blob = new Blob([`${bom}${csv}`], { type: 'text/csv;charset=utf-8;' });
// proceed with saving the blob ...

我创建了一个小 jsfiddle:https://jsfiddle.net/h6n1cpqf/