problema con codificación ordinal not in range(128)

Daniel Muñiz Fontoira dmunhiz en gmail.com
Mie Dic 6 08:59:12 CET 2006


Gracias Jesús, pero ese no es el error ya que ya está así: # -*- coding:
iso-8859-15 -*-  y las dos funciones están en el mismo fichero.

Hoy por la mañana despues de descansar un poco (ayer estuve horas con
este error tonto)
Finalmente se me dió por mirar el tipo de la variable donde almacenava
las cadenas, "textores" (type(textores)), donde no  fallaba era str y
curiosamente donde sí era unicode.
Que raro, me dije, ya que las dos llevan cadenas. Pues bien, la
diferencia entre la función que no daba error y la que sí era que en la
que no fallaba la variable antes de  comenzar a  rellenarla con  texto
la  inicié  con  "" es decir:

textores=""

Esto hace que:

type(textores) = str

Mientras que si comienzo:

textores= "<tr><td>"

type(textores) = unicode

En mi caso, para que todo vaya bien textores ha de ser str por lo que
"solo" tuve que  poner al principio

textores=""

En definitiva, esto:

textores=""
textores = textores + "<tr><td>" +
rs("clubdesc").Value.encode('iso-8859-15') + "</td>\n"

Ya no da error.

Nota : rs("clubdesc").Value.encode('iso-8859-15')  #esta forma que usé
para recoger los datos con eñe y acentos de la base de datos.

Saludos y gracias!
dmunhiz


Jesus Rodriguez escribió:
> en la primera  linea del programa pones:
>
> # -*- coding: iso-8859-15 -*-
>
> y deberia de funcionar
>
> 2006/12/5, Daniel Muñiz Fontoira <dmunhiz en gmail.com>:
>>
>> Hola:
>> De verdad que he mirado y luchado pero no se que mas hacer.
>> La cuestión es
>> esta linea vá bien e nuna función
>>
>> textores = textores + "<tr><td>" +
>> rs("clubdesc").Value.encode('iso-8859-15') + "</td>\n"
>>
>> en otra función la misma linea da el error: UnicodeDecodeError: 'ascii'
>> codec can't decode byte 0xd1 in position 20: ordinal not in range(128)
>>
>> Sin embargo si el rs("clubdesc").Value.encode('iso-8859-15') lo paso a
>> una variable limpia no hay problema.
>>
>> resultado = rs("clubdesc").Value.encode('iso-8859-15')  #esto no falla
>>
>> textores = textores + resultado # esto da error de codificación
>>
>>
>>
>> Gracias de antemano
>>
>> win: wp
>> python 2.4
>> wxpython
>> boa 0.52
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>

-- 

Remitente:
Daniel Muñiz Fontoira
/Eu uso software libre <http://www.gnu.org/philosophy/free-sw.gl.html>/




Más información sobre la lista de distribución Python-es