Ciao Voglio avere una versione in testo normale del mio contenuto disponibile. Quindi ho un modello separato per quello. Sto chiamando render_to_response
con mimetype="text/plain"
ma voglio dire a un browser che apre quella pagina nella risposta http che il contenuto è codificato in utf-8. Come faccio a farlo (ad es. Cosa devo aggiungere a render_to_response
)?invio intestazione di codifica del contenuto in django
5
A
risposta
7
Basta aggiungere charset a mimetype in questo modo:
mimetype="text/html; charset=utf-8"
Cosa succede realmente dietro scena è che mimetype è preso fuori kwargs in render_to_response
.
httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
e inviato al HttpResponse
che lo imposta come content_type
:
if mimetype:
content_type = mimetype # For backwards compatibility
if not content_type:
content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
settings.DEFAULT_CHARSET)
Nelle nuove versioni di Django il parametro è chiamato content_type invece di tipo MIME. –