使用DriveApp.createFile更改google脚本中的输出文件编码?

问题描述 投票:0回答:2

让我们解释一下我的请求的上下文:我正在尝试在.txt列表文件中输出谷歌电子表格的内容,用UTF-16编码,因为我在以后的任务中需要这个字符集来使用这个.txt文件。

实际上,我在正确的文件夹中输入了正确的输出,并且名称是我想要的...但是字符集是UTF-8(我用基本的文本编辑器检查)。

问题是我找不到任何关于使用谷歌脚本进行字符集操作的文档。我现在唯一的解决方案是在sublim文本中进行基本的手动charset操作...

这是我的代码(翻译自法语)。

谢谢你的回复!

马克西姆

    function export() {
  //sheet manipulation part
  //Get the sheet and set data range i need
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange();
  var values = sheet.getRange(2, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
  var text = values.map(function (a) {return a.join('\t');}).join('\n');

  //Path setting and export part
  // Get sheet info, define path and create file
  var id = SpreadsheetApp.getActiveSpreadsheet().getId();
  var idString = id.toString();
  var thisFile = DriveApp.getFileById(idString);
  var parentFold = thisFile.getParents();
  var folder = parentFold.next();
  var theId = folder.getId();
  var targetFolder = DriveApp.getFolderById(theId);
  targetFolder.createFile('liste du ' + new Date() + '.txt', text, MimeType.PLAIN_TEXT);
}
encoding google-apps-script google-sheets google-spreadsheet-api utf-16
2个回答
0
投票

这已经在这个SO post中得到了回答:

Utilities.newBlob("").setDataFromString("foo", "UTF-8").getDataAsString("UTF-16")

0
投票

这对我有所帮助:

var string = 'your text here';
var blob = Utilities.newBlob('').setDataFromString(string, "UTF-16");
blob.setName('your_file_name.txt');
var file = DriveApp.createFile(blob);

因此createFile方法将使用UTF-16。

© www.soinside.com 2019 - 2024. All rights reserved.