python - AWS S3特殊字符编码

标签 python python-2.7 amazon-s3 url-encoding

我在我的 S3 存储桶中上传了一张图片,文件名为 Müller.jpg

当我深入研究 Web UI 中的文件属性时,它会提供以下链接: https://s3-eu-west-1.amazonaws.com/my_bucket_name/Mu%CC%88ller.jpg

如何在 python 2.x 中实现相同的编码?

>>> import urllib
>>> name = u"Müller.jpg"
>>> urllib.quote(name.encode('utf-8'))
'M%C3%BCller.jpg'

最佳答案

文件名似乎已标准化为 NFD 或 NFKD。

使用unicodedata.normalize :

>>> import unicodedata
>>> import urllib
>>> name = u"Müller.jpg"
>>> urllib.quote(unicodedata.normalize('NFD', name).encode('utf-8'))
'Mu%CC%88ller.jpg'
>>> urllib.quote(unicodedata.normalize('NFKD', name).encode('utf-8'))
'Mu%CC%88ller.jpg'

关于python - AWS S3特殊字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21932713/

相关文章:

python - 使用简单绘图脚本时出现属性错误

python - 类方法装饰器的一些问题

amazon-s3 - 排序s3cmd的输出

Python boto3 检查区域内的有效存储桶

python - 使用 s3fs 更新日志文件

python - Django form.errors 没有出现在模板中

编译pyx文件

python - 使用 boto3 解析 AWS S3 中的文件

python - 如何使用pyspark从字符串中提取数字格式

python - 带有迭代器的多处理池