【发布时间】:2018-10-18 20:37:18
【问题描述】:
如何在 Google 助理中非常简单地显示欧元符号?每次我尝试以不同的编码获得符号时。我错过了什么简单的事情?
actions-on-google SDK 版本 2.0.1
const { dialogflow } = require('actions-on-google')
const app = dialogflow({ debug: true })
app.intent('euro-intent', (conv) => {
console.log('€')
conv.ask('€')
})
exports.myBot = app
我的操作是调用 AWS API Gateway 上的 Webhook,该 Webhook 使用 Node.js v 8.10 连接到 Lambda 函数。 CloudWatch 日志显示
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "€"
}
}
]
},
"userStorage": "{\"data\":{}}"
}
},
"outputContexts": [
{
"name": "projects/newagent-9bde7/agent/sessions/1525808242247/contexts/_actions_on_google",
"lifespanCount": 99,
"parameters": {
"data": "{}"
}
}
]
}
但是,我在模拟器中得到以下信息。
【问题讨论】:
-
你能不能尝试返回
"\\u20ac"而不是€,看看是否有帮助 -
@TarunLalwani 这会返回字符“\u20ac”,助手会将其读取为“you 20 ack”。
-
我认为这可能是一个编码问题。我会查看标头并确保正在返回
Content-type: application/json; charset=utf-8,如果没有,则在您的 lambda 中返回带有charset的content-type标头。我会尝试的另一件事是将内容处理设置为在需要时转换为文本。我没有使用它,但不确定它会为你改变什么,i.stack.imgur.com/AMKTB.png -
你有机会尝试这些东西吗?
标签: node.js unicode google-assistant-sdk