2

我正在尝试使用 Google App Script 导入带有法语口音的 CSV 文件,使用 getContentAsString() 读取文件,然后将其处理成 Google 电子表格。似乎 unicode 字符作为垃圾发回。

经过调查,似乎 getContentAsString() 使用 UTF-8 打开文件。当使用 Western Mac OS Roman 或 Western Windows Latin 1 创建文件时,这会导致问题 - 导出 CSV 时旧版 Excel 上的默认编码。

关于如何规避这个问题的任何建议?

示例:“设备应该是 Équipement

function Test() {
  var filename = 'BV_period_2.csv';
  var files = DocsList.getFiles();
  var csvFile = "";

  for (var i = 0; i < files.length; i++) {
    if (files[i].getName() == filename ) {
      csvFile = files[i].getContentAsString(); //csvFile will have �     
      break;
    }
  }

  var csvData = CSVToArray(csvFile, ",");
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('TestBV');
  ...
4

1 回答 1

3

您可以选择字符集。这是一个 UTF-16 示例。

DocsList.getFileById(<some id>).getBlob().getDataAsString("UTF-16")
于 2012-07-03T16:32:46.160 回答