DocsList文件getContentAsString()缺少unicode字符

时间:2012-06-29 17:40:11

标签: google-apps-script google-sheets

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

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

有关如何规避此问题的任何建议?

  

示例: quipement应该是É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');
  ...

1 个答案:

答案 0 :(得分:2)

您可以选择charset。这是一个UTF-16示例。

DocsList.getFileById(<some id>).getBlob().getDataAsString("UTF-16")