[pyar] Codecs, UTF-8

fisa fisadev en gmail.com
Mar Oct 12 20:14:40 ART 2010


El día 12 de octubre de 2010 20:12, Martin Cerdeira
<martincerdeira en gmail.com> escribió:
> 2010/10/12 Facundo Batista <facundobatista en gmail.com>:
>> 2010/10/12 Martin Cerdeira <martincerdeira en gmail.com>:
>>
>>> Porque lo corrí con un open(fname), y saqué el resto.
>>> Voy a hacer más pruebas (con más tiempo) y voy a poner los resultados. Gracias!
>>
>> Ok, mostrá el código, y el error que te da (no la última linea, sino
>> el traceback completo).
>>
>> Slds.
>>
>> --
>> .    Facundo
>>
>> Blog: http://www.taniquetil.com.ar/plog/
>> PyAr: http://www.python.org/ar/
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>
> Me pude poner (con tiempo) a ver el problema y, como todo, con tiempo
> las cosas son más claras =)
>
> Este es el trace completo del error actual:
>
> E:\HOME\Python\Qt\Html>main.py
> Traceback (most recent call last):
>  File "E:\HOME\Python\Qt\Html\main.py", line 22, in on_FileOpen_triggered
>    self.web.setHtml(codecs.open(fname, "r", "utf-8" ).read())
>  File "C:\Python26\lib\codecs.py", line 865, in open
>    file = __builtin__.open(filename, mode, buffering)
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xf3 in position 24: ordinal
>  not in range(128)
>
> Ahora, a raiz de que me dijiste que era imposible que diera el error
> con el open, me puse a ver otras cosas y, noté algo que no había
> notado. El path al archivo tiene un tilde. Es decir:
>
> fname = QtGui.QFileDialog.getOpenFileName(self, filter="*.html")
> print fname
>
> Falla si la carpeta se llama, por ejemplo, "Computación"
>
> No entiendo exactamente por qué falla, ya que le estoy poniendo que es
> utf-8. A lo sumo, fname debería tener la palabra computación con un
> caracter raro en vez de la ó. O, eso es lo que esperaría, pero no.
>
> Entonces, seguí con más pruebas:
>
> # -*- coding: utf-8 -*-
> string = "ñandú"
> print string
>
> ±and·
>
> # -*- coding: iso-8859-15 -*-
> string = "ñandú"
> print string
>
> ±and·
>
> # -*- coding: latin-1 -*-
> string = "ñandú"
> print string
>
> ±and·
>
> # -*- coding: iso-8859-1 -*-
> string ="ñadú"
> print string
>
> ±and·
>
> Luego:
>
> # -*- coding: utf-8 -*-
> string ="ñandú"
> print unicode(string,"latin1")
>
> ñandú
>
> Hay una forma *mejor* de hacer esto??
>
> -------------------------------------
> Martín Cerdeira - Software Developer
> [web] http://www.codmacs.blogspot.com/
> ()  ascii ribbon campaign
> /\  www.asciiribbon.org
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>

Pero te tira el error haciendo un open *sin* pasarle el encoding? Eso
sería raro.

-- 
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list