Python 可以使用';windows-1251';编码?

Python 可以使用';windows-1251';编码?,python,crystal-reports,flask,jinja2,Python,Crystal Reports,Flask,Jinja2,我为非常旧的报告系统编写了一个简单的前端,它使用Crystal Reports 8 Web组件服务器。 我需要向这个Web组件发出“POST”请求。当我从使用标准UTF-8编码的页面发出请求时,所有表单数据也将以UTF-8传递。这就是问题所在,因为CR8Web组件服务器不理解UTF-8(或者是这样做了,我错了?)。 我曾尝试将accept charset=“ISO-8859-5”和accept charset=“windows-1251”放入参数中,但没有成功 这里有更多有用的信息: 此前端将

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

这里有更多有用的信息:

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

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

如果您使用的是烧瓶,您是否阅读过以下内容:

我找到了一个简单(甚至愚蠢)的解决方案。 我正在手动创建请求并将请求数据和头设置为所需,而不是
返回呈现模板('template.html',params**)

看起来是这样的:

r = Response()
    r.headers['Content-Type'] = 'text/html; charset=windows-1251'
    r.data = render_template('template.html', param1 = data).encode('cp1251')
看起来像一个肮脏的黑客,但它的工作