2014-02-21 3 views
2

Я загрузил фотографию в своем ковре S3, имя файла - Müller.jpg.AWS S3 кодировка специальных символов

Когда я копаться в свойствах файла в веб-интерфейсе, он дает мне следующую ссылку: 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' 
Смежные вопросы