当分隔符为“ ”(空格)时,Google Apps Script 运行时 Chrome V8 会导致 Utilities.parseCsv(csv, delimiter) 出现错误

Ste*_*fen 3 javascript google-apps-script

在 Google App 脚本中,我需要使用空格作为分隔符来分割字符串。我使用了 Utilities.parseCsv。工作得很好。

然后,我将脚本代码切换到新的 V8 运行时,遇到了 parse.CSV 函数的错误。下面的这个简单代码在 V8 中失败,在旧版运行时中运行良好。错误是“异常:无法将 '' 转换为字符。”。

我喜欢使用 V8 运行时的原因是需要让它工作。请问有人有解决方法吗?

非常感谢!

function test(){
var csvString = "Prefix Middle Suffix";
var data = Utilities.parseCsv(csvString, ' ');
Logger.log(data);
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 6

  • 你想Utilities.parseCsv(csv, delimiter)在V8下使用。

如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。

我认为这可能是 V8 的错误之一。虽然我认为这可能会在未来的更新中得到解决。作为目前的解决方法,从 的错误信息来看Exception: Cannot convert '' to char.,下面的修改如何?

从:

var data = Utilities.parseCsv(csvString, ' ');
Run Code Online (Sandbox Code Playgroud)

到:

var data = Utilities.parseCsv(csvString, ' '.charCodeAt(0));
Run Code Online (Sandbox Code Playgroud)

或者

var data = Utilities.parseCsv(csvString, Utilities.newBlob(' ').getBytes());
Run Code Online (Sandbox Code Playgroud)

结果:

[["Prefix","Middle","Suffix"]]
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 在上面修改的脚本中,它可以在启用和不启用 V8 的情况下使用。

参考:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。