首页 > 解决方案 > Google Actions - 使用 AWS API Gateway 时的 UTF-8 解码

问题描述

我正在处理我在 Google 上的第一个操作,并且在试图弄清楚如何在我的基本卡片和语音文本中显示 unicode 字符时感到头疼。

例如,“Beyoncé”在模拟器和我的手机上呈现为“Beyoncé”。

数据来自我的 Amazon API Gateway,它返回我的 Lambda 的结果。此处的日志记录显示了正确的格式,所以我猜我的操作设置不正确?

有趣的是,表情符号也不呈现(在同一个 lambda 中硬编码)。遵循本指南https://developers.google.com/actions/assistant/responses#rich-responses所以我必须缺少一些配置?

我为 Webhook 设置了 DialogFlow Fulfillment,我已将字符集设置为 UTF-8,将 Content-Type 设置为 application/json

还有什么要配置的吗?

标签: utf-8aws-lambdaaws-api-gatewayactions-on-google

解决方案


我的决定是向我的 AWS API Gateway 添加更多配置设置。看来 DialogFlow v2 不再假定(或默认为?)网络挂钩响应的 utf-8 字符集。

只需添加content-type: application/json; charset=UTF-8到您的方法响应标头,而不是依赖从请求标头中持久保存的此值。

方法响应内容设置


推荐阅读