2014-02-21 95 views
2

我在S3存儲桶中上傳了一張圖片,文件名爲Müller.jpgAWS S3特殊字符編碼

當我鑽進去在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' 

回答

4

似乎文件名被標準化爲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'