Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sérgio Berlotto

Django - Ajax retornando json

Recommended Posts

Olá pessoal,

Estou implementando uma aplicação em Django 1.0.2, que retorna alguns dados via ajax, formatado como json.

Mas estou tendo problemas com a codificação da mesma, pois esta sendo alguns dados do banco de dados, retorna alguns acentos também, e não está retornando OK para meu arquivo js.

 

No meu settings.py:

DEFAULT_CHARSET = 'utf-8'

 

views.py:

 

def telajson(request, tela_id):
	telacamposobj = CamposDaTela.objects.filter(....)
	#toJSON é uma funcao que monta de forma simples alguns dados de telacamposobj para json...
	#[{id:1,titulo:'É o título da tela'},{id:2,titulo:'Tela 2'}] -> esta é a string retornada +-...
	json = toJSON(telacamposobj)
	#e_json = json.decode('iso-8859-1').encode('utf-8') #tentei isto nao funciona... gera erro tb ...
	return HttpResponse(e_json, mimetype="application/json")

E ao retornar os dados ocorre o seguinte erro :

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 132: ordinal not in range(128)

 

Não sei mais o que faço...

No banco está OK, mas ao retornar sempre ocorre este erro...

 

Minha simples questão é:

- Como faço para retornar uma string json via ajax com acentos ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o decode() precisa ser na string, e não no json como um todo.

Algo assim:

[{id:1,titulo:'É o título da tela'.decode("utf-8")},{id:2,titulo:'Tela 2'}]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o decode() precisa ser na string, e não no json como um todo.

Algo assim:

[{id:1,titulo:'É o título da tela'.decode("utf-8")},{id:2,titulo:'Tela 2'}]

 

Eu tenho por hábito comentar no início de todos os arquivos.

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.