Djangoを使用render_to_response
してXMLドキュメントを返します。この特定のXMLドキュメントは、フラッシュベースのチャートライブラリを対象としています。ライブラリでは、XMLドキュメントがBOM(バイト順マーカー)で始まる必要があります。DjangoにBOMを応答にプリペントさせるにはどうすればよいですか?
BOMをテンプレートに挿入することはできますが、ファイルを編集するたびにEmacsがBOMを削除するため、不便です。
次のように書き直そうとしましrender_to_response
たが、BOMがUTF-8でエンコードされているため、失敗します。
def render_to_response(*args, **kwargs):
bom = kwargs.pop('bom', False)
httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
s = django.template.loader.render_to_string(*args, **kwargs)
if bom:
s = u'\xef\xbb\xbf' + s
return HttpResponse(s, **httpresponse_kwargs)