谷歌操作-使用AWS API网关时的UTF-8解码

谷歌操作-使用AWS API网关时的UTF-8解码,utf-8,aws-lambda,aws-api-gateway,actions-on-google,Utf 8,Aws Lambda,Aws Api Gateway,Actions On Google,我正在谷歌上做我的第一个动作,我头疼的是如何在我的基本卡片和口语文本中显示unicode字符 例如,“碧昂丝”在模拟器和我的手机上呈现为“碧昂丝” 数据来自我的AmazonAPI网关,它返回Lambda的结果。这里的日志显示了正确的格式,所以我想我的操作设置不正确 有趣的是,emojis也不渲染(用相同的lambda硬编码)。遵循此指南后,我一定缺少一些配置 我为Webhook设置了DialogFlow,我已经将字符集设置为UTF-8,将内容类型设置为application/json 还有什么需

我正在谷歌上做我的第一个动作,我头疼的是如何在我的基本卡片和口语文本中显示unicode字符

例如,“碧昂丝”在模拟器和我的手机上呈现为“碧昂丝”

数据来自我的AmazonAPI网关,它返回Lambda的结果。这里的日志显示了正确的格式,所以我想我的操作设置不正确

有趣的是,emojis也不渲染(用相同的lambda硬编码)。遵循此指南后,我一定缺少一些配置

我为Webhook设置了DialogFlow,我已经将字符集设置为UTF-8,将内容类型设置为application/json


还有什么需要配置的吗?

我的解决方案是向我的AWS API网关添加进一步的配置设置。DialogFlow v2似乎不再假定(或默认为?)web钩子响应的utf-8字符集

只需添加
内容类型:application/json;charset=UTF-8
到方法响应头,而不是依赖于从请求头保存的该值


Hey@jewkesy,你找到这个问题的解决方案了吗?Hey@QuentinDel,还没有。目前与DialogFlow支持人员就此进行了交谈,他们建议我调查为什么响应头在“内容类型”中没有“charset=UTF-8”,尽管它是在请求时发送的。目前正在查阅AWS文档,以了解需要进一步配置的位置以及如何正确应用it@jewkesy你找到解决办法了吗?我收到了同样的问题?@AntonioCucciniello,是的-刚刚更新了帖子!很高兴听到它修好了!这是您在API网关中执行的操作吗?还是在你的代码里?另外,如果你能提供一个有帮助的例子@安东尼奥·库奇尼罗当然!添加了一个屏幕截图,显示了在API网关中需要应用设置的位置。确切的字符串是“application/json;charset=UTF-8”