【发布时间】:2022-01-29 14:09:55
【问题描述】:
ド(U+30C9) vs ド(U+30C8U+3099)
仅供参考,情况是
- 用户从 Web 应用程序将名称包含
ド(U+30C8U+3099)的文件上传到 AWS s3。 - 然后,网站向 AWS lambda 函数发送了一个 POST 请求,其中包含没有 url 编码的文件名,以便使用 Python 进行进一步处理。到达 Lambda 时的名称变成了
ド(U+30C9)。然后由于 unicode 的不同,Python 无法访问存储在 s3 中的文件。
我认为解决方案是在发送请求之前在前端进行 url 编码,并使用 urllib.parse.unquote 进行 url 解码以获得相同的 unicode。
我的问题是
-
url 编码能解决这个问题吗?我无法重现同样的问题,可能是因为我使用的操作系统与用户的操作系统不同。
-
自从两个请求(上传到 s3 并将第二个请求发送到 lambda)都发生在用户的机器上之后,究竟发生了什么?
谢谢。
【问题讨论】: