node.js - AWS Lambda 的 Unicode 字符集问题

标签 node.js amazon-web-services aws-lambda aws-sdk html-pdf

我正在使用 AWS Lambda 生成 pdf,其中 html-pdf 是 npm 包。一切正常,但问题出在 Hindi 字符上。字符出现乱码和可以理解的东西,如附图所示。 enter image description here

使用的包

  1. html-pdf
  2. ejs

我尝试过的事情:

我在我的本地机器上使用了相同的基于 nodejs 的代码,它按预期工作。但不适用于 Lambda (nodejs v6.10/8.10)

最佳答案

默认情况下,Lambda does not output in binary .它对您的所有输出进行 base64 编码。

如果您的 PDF 是通过 API 网关返回的,您可以通过更改 API 网关来扭转这种情况,以便通过第一张图片下方的以下步骤获取二进制文件:

enter image description here

  1. 为您的 Lambda 函数转到相应的 API 网关(我的是生成日历)
  2. 选择设置
  3. 二进制媒体类型中输入*/*
  4. 点击蓝色的保存更改按钮。

然后重新部署 API。见下图和步骤:

enter image description here

  1. 单击“资源”。
  2. 在“操作”按钮下,选择“部署 API”
  3. 在部署阶段,选择Prod
  4. 然后点击蓝色的部署按钮,

这是一个AWS forum post与您的 PDF 问题类似。希望这会有所帮助。

关于node.js - AWS Lambda 的 Unicode 字符集问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53305710/

相关文章:

python - 如何在不使用 snowflake-connector-python 的情况下连接到 aws lambda 函数中的雪花?

node.js - 如何在 Openshift NodeJS 应用程序上提供静态资源

amazon-web-services - 使用 CLI 从所有 s3 对象中删除加密

ruby-on-rails - Node.js 的 socket.io 的 Ruby 等价物是什么?

amazon-web-services - 在 Azure DevOps 上使用 Terraform 部署到 AWS 时的 AssumeRole

node.js - 如何使用 docker 测试 aws lambda 函数

javascript - 从 dynamodb 检索文档的异步代码永远不会执行

linux - 我如何编译 Node C++ 插件以便我可以在亚马逊 AWS 上使用它?

node.js - 如何使用超时执行 fs.existsSync(path)

node.js - 禁用 Socket.io 心跳 (Node.js)