Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在HTML中显示异常字符_Python_Html_Python 2.7_Character Encoding_Jinja2 - Fatal编程技术网

Python 在HTML中显示异常字符

Python 在HTML中显示异常字符,python,html,python-2.7,character-encoding,jinja2,Python,Html,Python 2.7,Character Encoding,Jinja2,我从数据库中提取了以下字符串: “赖特突然被推入了一种远离世俗的生活,一旦他适应了这种生活,他会出人意料地变得很好。” 这正是控制台上打印出来的文本。请注意,三重点是单个字符 现在,当我通过模板将此数据传递到HTML中时,出现以下错误: UnicodeDecodeError:“ascii”编解码器无法解码位置383处的字节0xe2:序号不在范围(128)内。 你知道怎么解决这个问题吗?我需要以某种方式编码到UTF-8吗。我在后台使用python 编辑 后端代码是: print "INFO: ",

我从数据库中提取了以下字符串:

“赖特突然被推入了一种远离世俗的生活,一旦他适应了这种生活,他会出人意料地变得很好。”

这正是控制台上打印出来的文本。请注意,三重点是单个字符

现在,当我通过模板将此数据传递到HTML中时,出现以下错误:

UnicodeDecodeError:“ascii”编解码器无法解码位置383处的字节0xe2:序号不在范围(128)内。

你知道怎么解决这个问题吗?我需要以某种方式编码到UTF-8吗。我在后台使用python

编辑

后端代码是:

print "INFO: ", data[2]

return render_template('index.html', title=data[1], info=data[2].encode("utf-8"), backdrop=data[4], imdbrat=data[7], rtrat=data[9], cert=data[10], yt=data[11], runtime=data[12]);
在模板(index.html)中,我有:


“…”字符是水平省略号

>>> import unicodedata
>>> c = unicodedata.lookup('HORIZONTAL ELLIPSIS')
>>> c
u'\u2026'
>>> print c
…
编码为utf-8,以0xe2开头:

>>> b = c.encode('utf-8')
>>> b
'\xe2\x80\xa6'
当传递到
render\u template
时,应该将模板的非ascii字符串解码为unicode

如果您需要字符串中除ASCII以外的任何内容,则必须对此进行标记 字符串作为Unicode字符串,前缀为小写的u。(如 u'Hänsel und Gretel')

看起来数据库中有一个Python2字符串,编码为utf-8。所以你需要解码成unicode

>>> u = b.decode('utf-8')

然后Flask/Jinja2应该正确处理它。

字符“…”是一个水平省略号

>>> import unicodedata
>>> c = unicodedata.lookup('HORIZONTAL ELLIPSIS')
>>> c
u'\u2026'
>>> print c
…
编码为utf-8,以0xe2开头:

>>> b = c.encode('utf-8')
>>> b
'\xe2\x80\xa6'
当传递到
render\u template
时,应该将模板的非ascii字符串解码为unicode

如果您需要字符串中除ASCII以外的任何内容,则必须对此进行标记 字符串作为Unicode字符串,前缀为小写的u。(如 u'Hänsel und Gretel')

看起来数据库中有一个Python2字符串,编码为utf-8。所以你需要解码成unicode

>>> u = b.decode('utf-8')

然后Flask/Jinja2应该正确地处理它。

“带有奇怪字符的字符串”。编码('utf-8')?这似乎没有任何区别。您仍然收到错误吗?你能把你的密码寄出去吗?我有一个类似的问题,我的答案解决了它,但你可能必须在其他地方转换它。“带有奇怪字符的字符串”。编码('utf-8')?这似乎没有任何区别。你仍然得到错误吗?你能把你的密码寄出去吗?我有一个类似的问题,我的答案解决了它,但你可能必须在其他地方转换它。