Python中文
首页
教程
问答
标签
搜索
登录
注册
在Jinja2 temp中使用utf-8字符
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在用Jinja2呈现模板时,我尝试使用utf-8字符。以下是我的模板的外观:</p> <pre><code><!DOCTYPE HTML> <html manifest="" lang="en-US"> <head> <meta charset="UTF-8"> <title>{{title}}</title> ... </code></pre> <p>title变量设置如下:</p> <pre><code>index_variables = {'title':''} index_variables['title'] = myvar.encode("utf8") template = env.get_template('index.html') index_file = open(preview_root + "/" + "index.html", "w") index_file.write( template.render(index_variables) ) index_file.close() </code></pre> <p>现在,问题是<strong>myvar</strong>是从消息队列读取的消息,可以包含那些特殊的utf8字符(例如“Séptimo Cine”)。</p> <p>呈现的模板类似于:</p> <pre><code>... <title>S\u00e9ptimo Cine</title> ... </code></pre> <p>我希望是:</p> <pre><code>... <title>Séptimo Cine</title> ... </code></pre> <p>我已经做了几次测试,但我不能让它起作用。</p> <ul> <li><p>我试图在没有<strong>的情况下设置title变量。encode(“utf8”)</strong>,但它抛出了一个异常(<em>ValueError:Expected a bytes object,not a unicode object</em>),所以我猜初始消息是unicode</p></li> <li><p>我使用了chardet.detect获取消息的编码(它是“ascii”),然后执行了以下操作:myvar.decode(“ascii”).encode(“cp852”),但标题仍然没有正确呈现。</p></li> <li><p>我还确保了我的模板是一个UTF-8文件,但它没有什么不同。</p></li> </ul> <p>有什么办法吗?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果因为混合了多种语言而什么都不起作用——就像我的例子一样——只需将“utf-8”替换为“utf-16”</p> <p>此处的所有编码选项:</p> <p><a href="https://docs.python.org/2.4/lib/standard-encodings.html" rel="nofollow">https://docs.python.org/2.4/lib/standard-encodings.html</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Kivy:在屏幕管理器中使用on_press even更改屏幕
6 回答
kivy:在幻灯片转换开始时播放声音,按下按钮后停止播放
2 回答
KIVY:在应用程序初始化期间添加小部件
2 回答
Kivy:在我的应用程序中添加工具栏
9 回答
Kivy:在排序ListAdapter d时无法更新ListView
7 回答
kivy:在根控件中用on-unpress-even更改嵌套按钮的颜色
2 回答
Kivy:在桌面上隐藏鼠标光标
3 回答
Kivy:在每次触摸之后(在触摸屏上)在FloatLayout中添加图像,但是所有以前的图像都消失了
9 回答
KIVY:在油漆应用程序中更改线条颜色
8 回答
Kivy:在简单的“Hello World”脚本中出现未知类<WindowManager>错误?
6 回答
Kivy:在网格中分配操作/分类按钮
3 回答
Kivy:在视图滚动时保持绘图说明在视图中
7 回答
Kivy:在重新进入的屏幕上将切换按钮重置为“正常”
10 回答
Kivy:基于基线更新标记中心位置
8 回答
Kivy:增加BoxLayout所需的空间?
10 回答
Kivy:声音开始播放,但在Android上是“不可阻挡的”,但在Windows上却可以
1 回答
Kivy:处理事件
6 回答
Kivy:多个屏幕和菜单项没有实现
1 回答
Kivy:如何为python创建的小部件使用画布
3 回答
Kivy:如何从kvlang中的任何屏幕访问嵌套的screenmanager
2 回答