【发布时间】:2009-09-14 21:03:31
【问题描述】:
我使用 Django 的 render_to_response 返回一个 XML 文档。这个特定的 XML 文档适用于基于 Flash 的图表库。该库要求 XML 文档以 BOM(字节顺序标记)开头。如何让 Django 将 BOM 预先添加到响应中?
它可以将 BOM 插入模板,但不方便,因为 Emacs 每次编辑文件时都会将其删除。
我尝试如下重写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)
【问题讨论】:
标签: xml django byte-order-mark