获取代码名称中带有 ^ 的股票的 API 信息

Fetch API information for stocks with ^ in the ticker name

我需要一些帮助来调用 AlphaVantage 股票市场 API。在大多数情况下,它工作得很好,但当涉及到从股票代码中有 ^ 符号的股票请求数据时,出现了问题。

我收到 API 响应代码:

var url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=^vvix&apikey=<KEY>", 
   response = UrlFetchApp.fetch(url),
   json = JSON.parse(response);
Logger.log(json);

并得到这个错误:

Invalid argument: https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&

所请求股票的股票代码是^vvix。如果我用 vix (另一个有效的代码)替换符号,代码就可以工作。因此,我假设错误与 ^ 符号有关,但 ^ 符号是股票代码的一部分。

如果我使用

=IMPORTDATA("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=^vvix&apikey=K9D4PO855OG03KNM")

作为 Google Sheets 公式,^ 没有问题,数据已检索

哪里不一样了?

^ 是 JavaScript 字符串中的无效字符吗?
知道有什么问题吗?

插入符号 ("^") 不是有效的 URL 字符,如果您遵循 IETF 的建议,则必须使用百分比编码。这是 RFC1738

中定义的 "unsafe" 字符之一

使用 %5E 代替 ^

更一般地说,用以下符号包裹符号:

encodeURI(symbol)