【问题标题】:Unicode charsets issue with AWS LambdaAWS Lambda 的 Unicode 字符集问题
【发布时间】:2019-04-17 17:52:09
【问题描述】:

我正在使用 AWS Lambda 生成 pdf,其中 html-pdf 是 npm 包。一切正常,但问题出在Hindi 字符上。这些字符看起来很乱而且可以理解,如附图所示。

使用的包

  1. html-pdf
  2. ejs

我尝试过的事情:

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

【问题讨论】:

  • 如何输出 PDF?上传到 S3?直接从 lambda 返回?如何调用 lambda?直接地?通过apigateway?其他活动?
  • 您使用的字符串是 lambda 函数返回的文件名吗?尝试将其解析为 JSON,例如name = JSON.parse(filename) 使用前。
  • @cementblocks 我正在使用 ejs 创建一个流并直接将流上传到 S3
  • @DeepakMallah 方块通常在您使用不包含所需字符的字体时出现。
  • @DeepakMallah 你是。否则,您将看不到 any 文本。如果您看到文字,即使它是默认字体,您也在使用一种字体

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


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多