2009-12-04 5 views
2

내가 장고에 동적으로 파일을 만들려고 해요 :장고 파일 이름

response = HttpResponse(mimetype='text/txt') 
response['Content-Disposition'] = 'attachment; filename=%s' % filename # UnicodeEncodeError 

response.write('text') 

return response 

나는 그것이 제대로 작동 파일 이름을 하드 코딩하지만, 경우에 나는 DB에서 파일 이름을 만들려고하면 ASCII 문자가 아닌 데이터 (예 : ó)가 포함 된 데이터는 UnicodeEncodeError 예외가 발생합니다. 예외없이 DB 파일 이름을 어떻게 사용할 수 있습니까?

답변

4
from django.utils.encoding import smart_str 
... 

response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename) 
+0

모든 utf 기호가 변환 될 수있는 것은 아닙니다. – slav0nic

2

장고에서 문제를 해결할 수 있지만 모든 브라우저에서 작동한다는 보장은 없습니다.

http://greenbytes.de/tech/tc2231/에있는 테스트 사례를 참조하십시오.

자세한 내용은 this question을 참조하십시오. 대부분의 경우를 처리하기 위해 스 니펫에 연결됩니다.