Jinja2在处理之前将所有模板变量转换为unicode。任何人都可以找到这样的地方吗?
问题在于它假设字符串是ascii
,但我们(在Roundup)内部使用utf-8
而我们的ORM(HyperDB)会自动将对象属性恢复为utf-8
,并且
,在传递给模板之前,在每个视图中将它们全部转换为unicode
。
答案 0 :(得分:1)
Armin回答:
不幸的是,这是不可能的。 Jinja使用Python提供的2.x上的默认字符串强制来提高速度。没有保证要求制作unicode的电话。你唯一的糟糕选择是重新加载sys并调用sys.setdefaultencoding('utf-8')或其他东西。
更新:Jinja2 2.8包含一些与隐式字符串转换相关的更新。这让我觉得通过覆盖unicode类型的sys.setdefaultencoding('utf-8')
方法可以不使用__add__
,并确保在连接字符串时首先使用它。