小编ano*_*mou的帖子

在PostgreSQL,Python,Jinja2上编码

我在我的应用程序中遇到编码问题,但在网络上找不到解决方案.

这是场景:

  • 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 …

python encoding utf-8 jinja2 flask

4
推荐指数
1
解决办法
3031
查看次数

标签 统计

encoding ×1

flask ×1

jinja2 ×1

python ×1

utf-8 ×1