【问题标题】:JavaScript: how to Download CSV file containing French text with UTF-8 encodingJavaScript:如何使用 UTF-8 编码下载包含法语文本的 CSV 文件
【发布时间】:2017-09-13 19:20:15
【问题描述】:

我正在尝试使用 JavaScript 下载 CVS 文件。该 CSV 包含法语文本。 我正在使用 blob 创建文件

    var blob = new Blob([ csv ], {
                type : 'text/csv;charset=utf-8'
            });
    var csvUrl = window.URL.createObjectURL(blob);

但是当我打开 csv 文件时,它以 ANSII 格式显示内容,因为法语字符被转换为一些未知字符。

但是如果我打开与文本相同的文件,编码是好的(UTF-8)。

Example: Text I am trying to download "Opération"
Text Visible in Excel (.csv) ==> Opération   <== With unknown characters
Text if opened in Notpad++ ==> Opération   <== Correct UTF-8

如何直接使用 UTF-8 编码打开下载 CSV 文件? 我不希望用户更改 excel 中的任何内容。我想要一些 javascript 格式,以便 excel 可以识别我的所有字符,而不管其编码如何。有没有可能做点什么?

【问题讨论】:

  • 听起来像是 excel 问题而不是编程问题。
  • 嗨,Kaiido,我不希望用户更改 Excel 中的任何内容。我想要一些 javascript 格式,以便 excel 可以识别我的所有字符,而不管其编码如何。有什么建议吗?
  • 不,这是一个 excel 问题。出于某种原因,他们甚至无法对 csv 文件进行 BOM 识别。您将其保存为 utf-8 是正确的,MS 在做废话。不是你的错。无论如何,需要这些字符集的用户可能已经习惯了。
  • Ps:您可以尝试直接保存为 xls 而不是 csv :github.com/SheetJS/js-xlsx

标签: javascript blob export-to-csv


【解决方案1】:

我遇到了同样的问题,我找到了以下解决方案:

similar problem and solution

唯一要做的就是在 csv 字符串的开头添加 "\ufeff"

var csv = "\ufeff"+CSV;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2020-05-24
    • 2019-10-15
    • 1970-01-01
    相关资源
    最近更新 更多