我在我的应用程序中遇到编码问题,但在网络上找不到解决方案.
这是场景:
PostgreSQL使用UTF-8编码(CREATE DATABASE xxxx WITH ENCODING 'UTF8')
Python逻辑也使用UTF-8编码(# -*- coding: utf-8 -*-)
Jinja2显示我的HTML页面.Python和Jinja2用于Flask,这是我正在使用的微框架.
我的页面标题有: <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
好吧,使用psycopg2做一个简单的查询并在Jinja2上打印,这就是我得到的:
{% for company in list %}
<li>
{{ company }}
</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
(1,'Casa das M\xc3\xa1quinas','R.Tr\xc3\xaas,Mineiros - Goi\xc3\xa1s')
(2,'Ar do Z\xc3\xa9','Av.S\xc3\xa9tima,Mineiros - Goi\xc3\xa1s')
如果我尝试更深入到这些领域:
{% for company in list %}
<li>
{% for field in company %}
<li>
{{ field }}
</li>
{% endfor %}
</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:UnicodeDecodeError:'ascii'编解码器无法解码位置10中的字节0xc3:序数不在范围内(128)
但是,如果我在将列表字段发送到Jinja2之前打印列表字段,我会得到预期的结果(这也是在postgresql中呈现的方式):
1 CasadasMáquinasR.Três,Mineiros - Goiás …