我为相当旧的报告系统编写了一个简单的前端,该系统使用Crystal Reports 8 Web组件服务器。
我需要向此Web组件发出“POST”请求。当我从使用标准UTF-8编码的页面发出请求时,所有表单数据也以UTF-8传递。这就是问题所在,因为CR8 Web组件服务器不理解UTF-8(或是它,我错了?)。
我试图将accept-charset="ISO-8859-5"
和accept-charset="windows-1251"
放在参数中并且没有运气。
以下是更多信息,这可能很有用:
所以我需要使用'windows-1251'编码来渲染模板(jinja2),因为参数名称和值可以包含西里尔字符。有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
我发现了一个简单的(甚至可能是愚蠢的)解决方案。
而不是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')
看起来像一个肮脏的黑客,但它的确有效。
答案 1 :(得分:0)
如果您正在使用烧瓶,请阅读:
答案 2 :(得分:0)
在我的例子中,loaders.py 在几个地方有一个硬编码“utf-8”,我用“windows-1251”代替,对我来说一切正常!