引言
在现代 Web 开发中,我们经常需要处理来自全球不同地区的数据,这包括文件名中可能包含的非拉丁文字符。最近,在一个项目中,我们遇到了一个与 Amazon S3 服务相关的挑战,涉及到文件名编码的处理。当从 S3 下载文件时,Content-Disposition 响应头默认使用 ISO-8859-1 编码,这在处理非西欧语言的文件名时产生了问题。本文将探讨这个问题的根源以及我们如何通过 JavaScript 解决它,确保文件名在全球范围内都能正确显示和处理。
问题描述
S3 在处理文件名时,当涉及到具有非 ASCII 字符的文件名时,这会出现以下报错。
<Error><Code>InvalidArgument</Code><Message>Header value cannot be represented using ISO-8859-1.</Message><ArgumentName>response-content-disposition</ArgumentName><Argu