使用WindowsJinJa编码模板(windows1251)渲染Flask?

2024-10-01 07:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我为相当旧的报表系统编写了一个简单的前端,它使用CrystalReports8Web组件服务器。 我需要向这个Web组件发出“POST”请求。当我从使用标准UTF-8编码的页面发出请求时,所有表单数据也将以UTF-8传递。这就是问题所在,因为cr8web组件服务器不理解UTF-8(或者它和我错了吗?)。 我试图将accept-charset="ISO-8859-5"accept-charset="windows-1251"放入参数中,但没有成功。在

以下是一些有用的信息:

  • 这个前端将在Windows Server 2003上使用IIS6
  • 唯一合适的浏览器是IE,因为CR8Web组件服务器使用ActiveX组件。(也有一个java插件,但由于某种原因它根本不起作用)。在

所以我需要flask(jinja2)使用'windows-1251'编码来呈现模板,因为参数名和值可以包含西里尔字符。我有什么办法可以做到这一点吗?在


Tags: 服务器web编码参数标准报表windows系统
2条回答

我找到了一个简单(甚至可能是愚蠢的)解决方案。 我不是return render_template('template.html', params**),而是手动创建请求并将请求数据和头设置为我需要的。在

看起来是这样的:

r = Response()
    r.headers['Content-Type'] = 'text/html; charset=windows-1251'
    r.data = render_template('template.html', param1 = data).encode('cp1251')

看起来像是一个肮脏的黑客,但它是有效的。在

如果你用的是烧瓶,你读过这个吗:

http://flask.pocoo.org/docs/unicode/

相关问题 更多 >