2

我最近开始使用 OpenWhisk 并且喜欢它。一切似乎都很好,除了我遇到了一些可能与字符集/编码有关的问题。

例如,当我使用“斯堪的纳维亚字符”(如 æ、ø、å)时,我会在 OpenWhisk Web 编辑器中看到此内容,并在调用带有以下负载的操作/触发器时:

{
    "station": "Rådhuset",
    "no2": 8.7,
    "pm10": 6.5,
    "pm25": 2.2,
    "time": 1461348000,
    "id": "Rådhuset-1461348000"
}

我得到以下结果/响应负载:

{
    "notify": "Station R??dhuset != R���dhuset"
}

调用的动作中的主要函数如下所示:

var payload = params.payload || params;
var station = 'Rådhuset';
if (station == payload.station) {
...
} else
return whisk.done({notify : 'Station ' + station + ' != ' + payload.station});

在没有这些字符的情况下运行动作时,例如“Kirkeveien”,一切正常。

有没有其他人遇到过类似的情况?!

4

2 回答 2

0

非 ASCII 字符存在一个已知缺陷。https://github.com/openwhisk/openwhisk/issues/252

一种可能的解决方法是对字符串进行编码(例如 base64 编码)。

于 2016-04-23T15:17:09.860 回答
0

尝试编码:

var payload = params.payload || params;
var station = 'Rådhuset';
if (station == payload.station) {
...
} else
return whisk.done({notify : 'Station ' + encodeURIComponent(station) + ' != ' + encodeURIComponent(payload.station)});
于 2019-01-23T23:46:18.373 回答