[pyar] Problemas con encoding. y van...

Andrés Gattinoni andresgattinoni en gmail.com
Mie Ene 12 11:10:49 ART 2011


2011/1/12 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On 1/12/2011 10:39 AM, Maximiliano Robaina wrote:
>
> Hola,
>
> Estoy teniendo un problema con encodings y no me estoy dando cuenta en
> que le estoy errando.
>
> El tema es el siguiente:
> En una app django, estoy recibiendo un request con una variable "q" en
> donde viene el valor que posteriormente consultaré a la DB.
>
> En teoría ese "q" debería tener un unicode en iso-8859-1.
>
> Porqué tenés esa teoría?
>
> "HTML form submission is a tricky area. There's no guarantee that the
> submission will include encoding information, which means the framework
> might have to guess at the encoding of submitted data."
>
> Sacado de http://docs.djangoproject.com/en/dev/ref/unicode/

Es verdad que uno siempre tiene que desconfiar de lo que te mandan por
POST, porque te pueden declarar un encoding y mandarte una milanesa
con papas fritas.
Por otro lado, quizás te interese saber esto. Según la W3, vos podés
especificar en el tag FORM la propiedad accept-charset y definirle una
lista de encodings en que se pueden enviar los datos. Pero si no lo
especificás (lo más común) el default es "UNKNOWN", en cuyo caso se
sugiere que los browsers envíen la data en el mismo encoding del
documento que contiene el elemento <form>.

http://www.w3.org/TR/html401/interact/forms.html#h-17.3

Por alguna razón mientras escribía esto ya no pude volver a conectarme
más al dominio w3.org, pero bueno, a nivel HTTP se supone que el
charset te puede venir en el request en el header Content-Type, por
ejemplo: Content-Type: application/x-www-form-urlencoded ;
charset=UTF-8. Pero si no se indica no estoy seguro si hay un default
o cómo se *debería* manejar eso.

Ahora, ante la duda: utf-8 FTW... metele UTF-8 en todos lados
(archivos, headers HTTP, HTMLs, base de datos, etc.) y vas a ser feliz
:)



More information about the pyar mailing list