Solucionado (ver solução)
Solucionado
(ver solução)
16
respostas

Erro "UnicodeEncodeError" na página principal

Esse erro começa a acontecer depois que eu crio o código html e o passo para a função de view "index". Até o momento de organizar melhor as rotas a página abre normalmente.

Eu refiz tudo pra ver se estava esquecendo alguma coisa mas o erro permaneceu. Eu também baixei o arquivo dessa aula, iniciei o servidor e deu a mesma coisa.

Tem muita coisa escrita no site, então vou copiar aqui só a parte inicial:

UnicodeEncodeError at /
'ascii' codec can't encode character u'\xc1' in position 13: ordinal not in range(128)
Request Method:    GET
Request URL:    http://localhost:8000/
Django Version:    1.7.4
Exception Type:    UnicodeEncodeError
Exception Value:    
'ascii' codec can't encode character u'\xc1' in position 13: ordinal not in range(128)
Exception Location:    /usr/lib/python2.7/encodings/utf_8.py in decode, line 16
Python Executable:    /usr/bin/python
Python Version:    2.7.6
Python Path:    
['/home/telles/\xc3\x81rea de Trabalho/python/connectedin',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PILcompat',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
 '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
Server time:    Tue, 7 Mar 2017 23:51:47 +0000

Acho que o problema é com o meu computador, mas se alguém souber me ajudar, agradeço.

16 respostas

Igor, coloca isso # -*- coding: utf-8 -*-na primeira linha da view

# -*- coding: utf-8 -*-

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return render(request, 'index.html')

Assim? Tá dando erro ainda =/

Qual editor você esta usando, meu aluno?

A versão mais recente do sublime

Então. Quando esse erro acontece, é porque há um caracter especial que o Django não consegue lidar. A solução da Vania resolveria, como não resolveu, desconfio que bizarramente alguma combinação de teclas (já vi isso acontecer) colocou um caracter inválido.

Então, para termos certeza absoluta. Tem como você fazer essa parte do zero? Começar novamente? Acho que isso vai nos poupar muita dor de cabeça.

Ou, por alguma motivo que eu desconheça, o Sublime que costuma ser um bom garoto salvou o arquivo em outro formato. Você criou o arquivo no sublime ou criou em outro lugar e depois foi editar com o Sublime?

Então, eu já comecei tudo do zero e o erro persistiu. Eu comparei meu código com o da aula e ele está idêntico. Aliás, eu baixei os arquivos da aula e, sem altera-los, iniciei o servidor, e o resultado foi o mesmo.

Eu posso tentar tudo desde o início usando outro editor, o brackets, por exemplo.

Qual versão django instalou?

Então confirme para mim. Você baixou o projeto e mesmo o projeto do zip deu erro de encoding? Você esta usando algum terminal diferente do prompt?

Tem alguma config em sua máquina que esta atrapalhando mas não sei ainda o que é.

Ahhhhhhh acho que descobri !

solução!

Com python e Django nenhuma pasta pode ter acento ou espaço. Mova seu projeto para uma pasta cujo caminho não tenha espaço acento. Eu uso mac e isso não tem problema. Só pode ser isso! Aliás, é a primeira coisa que verifico com meus alunos, mas dessa vez, devido aos lançamentos de novos cursos essa semana, to com a cabeça meio avoada.

Minha versão do Django é a 2.7. Sim, o projeto das aulas deu erro também. Eu uso o terminal do Linux ubuntu. Bem, a minha pasta ta na área de trabalho, e o endereço fica exatamente assim .../Área de trabalho/python/... Pode ser por causa desse espaço em área de trabalho? Mas se for por isso, esse erro não devia estar acontecendo desde sempre? Porque quando eu usei o Http response, funcionou. Bem, de qualquer jeito chegar em casa eu vou tentar.

É um problema que eu estou desconfiando, porque até agora não sei o que esta causando o problema de encoding do seu arquivo.

Você precisa confirmar, abrir seu arquivo em algum programa que diga qual encoding esta sendo usado. O problema é certo, enconding, mas o que esta causando isso quando você edita seus arquivos não faço ideia.

Seu Ubuntu não deve estar usando UTF-8 no terminal, ou você esta usando um programa de terminal fora do padrão que tem o enconding com problema. Outra hipótese.

Pode ficar tranquilo que mais de 500 pessoas já terminaram o curso sem qualquer problema. Uma hora a gente descobre, mas eu preciso que você seja sempre preciso nas informações prestadas para eu ter uma luz do que esta acontecendo.

Aeeeeeee. O problema era estar na área de trabalho mesmo. Movi pra documentos e deu. Obg, professor

Que notícia boa!!!!! Agora é continuar com os estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software