[pyar] URL Encoding

Matias Graña matias.alejo en gmail.com
Lun Ene 24 00:52:27 ART 2011


2011/1/23 matias benedetto <matias.benedetto en gmail.com>:
> 1. #Leo la cadena autor del sitio web en iso-8859-1
> 2. autor= autor.encode("iso-8859-1")
> 3. autor= autor.decode("iso-8859-1")

Los pasos dos y tres son inversos uno del otro. Si realmente hacés 2 y
luego 3, y nada en el medio, podés obviar ambos.
Lo más probable es que luego del paso 1, autor sea de tipo unicode,
que es lo que volvés a tener luego de 2 y 3.

> 4. autor = autor.encode("utf-8")

Acá convertiste unicode en utf8.

> 5. guardo autor en la BD

Eso no sé cómo lo guarda la bd. Posiblemente utf8, posiblemente tenga
su propio encoding. No soy el más apropiado para decirlo. Pero...

>
> En otro Script:
> 6. Leo la BD mysql
> 7. autor= autor.encode("iso-8859-1")

Esto debería querer decir que recuperaste autor como unicode luego de
leer la BD. Pero...

> 8. urllib.quote_plus(autor, ":/")
> por que si no hago el paso 7 me devuelve una cadena que no me sirve?

Hay algo raro aquí. urllib.quote (o quote_plus) tiran una excepción
con unicode con caracteres no ascii. Estás seguro de que luego de
hacer el paso 6 podés evitar el 7, hacer urllib.quote() y no recibir
ninguna excepción?

Mi sugerencia, antes de seguir y hacerte una ensalada (como me la hice
yo por un tiempo hasta que me puse las pilas) es que leas
http://tools.assembla.com/svn/homedevel/presents/unicode.odp
Se lee realmente rápido y vas a entender al menos qué es encode(),
decode() y unicode.

Saludos,
Matías



More information about the pyar mailing list